From b96d895809129a9790915ea01edce8dab924e6aa Mon Sep 17 00:00:00 2001 From: nanxun Date: Thu, 12 Feb 2026 21:53:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/ISSUE_TEMPLATE/bug.yaml | 54 +- README.md | 4 +- backend/IMTest/.gitignore | 4 +- backend/IMTest/IMTest.csproj | 58 +- backend/IMTest/Service/AuthServiceTest.cs | 416 +- backend/IMTest/Service/FriendServiceTest.cs | 296 +- backend/IMTest/Service/GroupServiceTest.cs | 186 +- backend/IMTest/Service/UserServiceTest.cs | 372 +- .../IMTest/bin/Debug/net8.0/IMTest.deps.json | 5776 ++--- backend/IMTest/bin/Debug/net8.0/IMTest.dll | Bin 46080 -> 46080 bytes backend/IMTest/bin/Debug/net8.0/IMTest.pdb | Bin 32588 -> 32588 bytes .../Debug/net8.0/IMTest.runtimeconfig.json | 36 +- .../IMTest/bin/Debug/net8.0/IM_API.deps.json | 3484 +-- backend/IMTest/bin/Debug/net8.0/IM_API.dll | Bin 470528 -> 472576 bytes backend/IMTest/bin/Debug/net8.0/IM_API.exe | Bin 150016 -> 150016 bytes backend/IMTest/bin/Debug/net8.0/IM_API.pdb | Bin 132708 -> 133276 bytes .../Debug/net8.0/IM_API.runtimeconfig.json | 38 +- .../Debug/net8.0/appsettings.Development.json | 16 +- .../IMTest/bin/Debug/net8.0/appsettings.json | 52 +- ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 8 +- .../obj/Debug/net8.0/IMTest.AssemblyInfo.cs | 46 +- .../net8.0/IMTest.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 30 +- .../obj/Debug/net8.0/IMTest.GlobalUsings.g.cs | 18 +- .../IMTest.csproj.AssemblyReference.cache | Bin 42384 -> 42384 bytes .../IMTest.csproj.CoreCompileInputs.cache | 2 +- .../net8.0/IMTest.csproj.FileListAbsolute.txt | 306 +- backend/IMTest/obj/Debug/net8.0/IMTest.dll | Bin 46080 -> 46080 bytes .../net8.0/IMTest.genruntimeconfig.cache | 2 +- backend/IMTest/obj/Debug/net8.0/IMTest.pdb | Bin 32588 -> 32588 bytes .../IMTest/obj/Debug/net8.0/ref/IMTest.dll | Bin 17920 -> 17920 bytes .../IMTest/obj/Debug/net8.0/refint/IMTest.dll | Bin 17920 -> 17920 bytes .../obj/IMTest.csproj.nuget.dgspec.json | 476 +- .../IMTest/obj/IMTest.csproj.nuget.g.props | 56 +- .../IMTest/obj/IMTest.csproj.nuget.g.targets | 20 +- backend/IMTest/obj/project.assets.json | 17936 ++++++++-------- backend/IMTest/obj/project.nuget.cache | 350 +- backend/IM_API/.dockerignore | 58 +- backend/IM_API/.gitignore | 4 +- .../Aggregate/FriendRequestAggregate.cs | 40 +- .../FriendAddConversationHandler.cs | 46 +- .../FriendAddHandler/FriendAddDBHandler.cs | 58 +- .../FriendAddSignalRHandler.cs | 74 +- .../RequestDbHandler.cs | 48 +- .../SignalRHandler.cs | 68 +- .../GroupInviteSignalRHandler.cs | 52 +- .../GroupJoinConversationHandler.cs | 42 +- .../GroupJoinHandler/GroupJoinDbHandler.cs | 44 +- .../GroupJoinSignalrHandler.cs | 90 +- .../GroupRequestSignalRHandler.cs | 34 +- .../GroupRequestHandler/NextEventHandler.cs | 62 +- .../NextEventHandler.cs | 62 +- .../RequestUpdateSignalrHandler.cs | 58 +- .../ConversationEventHandler.cs | 132 +- .../MessageCreatedDbHandler.cs | 52 +- .../SignalREventHandler.cs | 96 +- .../RequestFriendSignalRHandler.cs | 74 +- .../Application/Interfaces/IEventBus.cs | 18 +- .../Application/Interfaces/IEventHandler.cs | 18 +- backend/IM_API/Configs/MQConfig.cs | 130 +- backend/IM_API/Configs/MapperConfig.cs | 352 +- .../Configs/Options/ConnectionOptions.cs | 16 +- .../IM_API/Configs/Options/RabbitMQOptions.cs | 20 +- .../Configs/ServiceCollectionExtensions.cs | 128 +- backend/IM_API/Controllers/AuthController.cs | 164 +- .../Controllers/ConversationController.cs | 112 +- .../IM_API/Controllers/FriendController.cs | 234 +- backend/IM_API/Controllers/GroupController.cs | 142 +- .../IM_API/Controllers/MessageController.cs | 110 +- backend/IM_API/Controllers/UserController.cs | 228 +- backend/IM_API/Dockerfile | 58 +- backend/IM_API/Domain/Events/DomainEvent.cs | 26 +- .../IM_API/Domain/Events/FriendAddEvent.cs | 50 +- .../Events/GroupInviteActionUpdateEvent.cs | 28 +- .../IM_API/Domain/Events/GroupInviteEvent.cs | 20 +- .../IM_API/Domain/Events/GroupJoinEvent.cs | 20 +- .../IM_API/Domain/Events/GroupRequestEvent.cs | 30 +- .../Domain/Events/GroupRequestUpdateEvent.cs | 28 +- .../Domain/Events/MessageCreatedEvent.cs | 46 +- .../Domain/Events/RequestFriendEvent.cs | 20 +- backend/IM_API/Domain/Interfaces/IEvent.cs | 12 +- backend/IM_API/Dtos/Auth/AuthDto.cs | 8 +- backend/IM_API/Dtos/Auth/LoginRequestDto.cs | 34 +- .../IM_API/Dtos/Auth/RegisterRequestDto.cs | 38 +- backend/IM_API/Dtos/BaseResponse.cs | 164 +- .../Conversation/ClearConversationsDto.cs | 52 +- .../Conversation/UpdateConversationDto.cs | 24 +- backend/IM_API/Dtos/Friend/FriendDto.cs | 66 +- .../IM_API/Dtos/Friend/FriendRequestDto.cs | 30 +- .../IM_API/Dtos/Friend/FriendRequestResDto.cs | 72 +- .../Dtos/Friend/HandleFriendRequestDto.cs | 58 +- backend/IM_API/Dtos/Group/GroupCreateDto.cs | 44 +- backend/IM_API/Dtos/Group/GroupInfoDto.cs | 102 +- .../IM_API/Dtos/Group/GroupInviteUserDto.cs | 16 +- .../Dtos/Group/GroupUpdateConversationDto.cs | 22 +- .../IM_API/Dtos/Group/HandleGroupInviteDto.cs | 20 +- .../Dtos/Group/HandleGroupRequestDto.cs | 20 +- backend/IM_API/Dtos/HubResponse.cs | 98 +- .../IM_API/Dtos/Message/MessageQueryDto.cs | 36 +- backend/IM_API/Dtos/MessageDto.cs | 34 +- backend/IM_API/Dtos/SignalRResponseDto.cs | 132 +- backend/IM_API/Dtos/TestDto.cs | 16 +- backend/IM_API/Dtos/User/UpdateUserDto.cs | 24 +- backend/IM_API/Dtos/User/UserDto.cs | 42 +- backend/IM_API/Dtos/User/UserInfoDto.cs | 86 +- backend/IM_API/Exceptions/BaseException.cs | 34 +- .../IM_API/Filters/GlobalExceptionFilter.cs | 78 +- backend/IM_API/Hubs/ChatHub.cs | 180 +- backend/IM_API/IM_API.csproj | 72 +- backend/IM_API/IM_API.csproj.user | 20 +- backend/IM_API/IM_API.http | 12 +- backend/IM_API/IM_API.sln | 62 +- .../EventBus/InMemoryEventBus.cs | 64 +- .../IM_API/Interface/Services/IAuthService.cs | 44 +- .../Interface/Services/ICacheService.cs | 98 +- .../Services/IConversationService.cs | 112 +- .../Interface/Services/IFriendSerivce.cs | 142 +- .../Interface/Services/IGroupService.cs | 110 +- .../IM_API/Interface/Services/IJWTService.cs | 42 +- .../Interface/Services/IMessageSevice.cs | 106 +- .../Services/IRefreshTokenService.cs | 54 +- .../Interface/Services/ISequenceIdService.cs | 24 +- .../IM_API/Interface/Services/IUserService.cs | 90 +- .../20260204140029_InitialCreate.Designer.cs | 2188 +- .../20260204140029_InitialCreate.cs | 146 +- .../20260204140708_change_file.Designer.cs | 2188 +- .../Migrations/20260204140708_change_file.cs | 56 +- .../20260204150644_add-SequenceId.Designer.cs | 2186 +- .../20260204150644_add-SequenceId.cs | 80 +- ...conversation-lastreadmessageid.Designer.cs | 2188 +- ...6_update-conversation-lastreadmessageid.cs | 82 +- .../20260205132459_update-message.Designer.cs | 2202 +- .../20260205132459_update-message.cs | 186 +- ...pdate-datetimeToDateTimeOffset.Designer.cs | 2202 +- ...7121713_update-datetimeToDateTimeOffset.cs | 44 +- ...338_update-DateTimeOffset-type.Designer.cs | 2202 +- ...260207122338_update-DateTimeOffset-type.cs | 44 +- .../20260208124430_update-group.Designer.cs | 2230 +- .../Migrations/20260208124430_update-group.cs | 130 +- ...53_update-group-groupid-userid.Designer.cs | 2234 +- ...60211065853_update-group-groupid-userid.cs | 98 +- .../Migrations/ImContextModelSnapshot.cs | 2228 +- backend/IM_API/Models/Admin.cs | 82 +- backend/IM_API/Models/AdminExt.cs | 22 +- backend/IM_API/Models/AdminState.cs | 16 +- backend/IM_API/Models/ChatType.cs | 16 +- backend/IM_API/Models/Conversation.cs | 102 +- backend/IM_API/Models/ConversationExt.cs | 36 +- backend/IM_API/Models/Device.cs | 58 +- backend/IM_API/Models/DeviceDtype.cs | 52 +- backend/IM_API/Models/DeviceExt.cs | 22 +- backend/IM_API/Models/File.cs | 86 +- backend/IM_API/Models/Friend.cs | 92 +- backend/IM_API/Models/FriendExt.cs | 22 +- backend/IM_API/Models/FriendRequestExt.cs | 22 +- backend/IM_API/Models/FriendRequestState.cs | 50 +- backend/IM_API/Models/FriendStatus.cs | 50 +- backend/IM_API/Models/Friendrequest.cs | 90 +- backend/IM_API/Models/Group.cs | 132 +- .../IM_API/Models/GroupAllMembersBanned.cs | 28 +- backend/IM_API/Models/GroupAuhority.cs | 44 +- backend/IM_API/Models/GroupExt.cs | 42 +- backend/IM_API/Models/GroupInviteExt.cs | 22 +- backend/IM_API/Models/GroupInviteState.cs | 34 +- backend/IM_API/Models/GroupMemberExt.cs | 22 +- backend/IM_API/Models/GroupMemberRole.cs | 36 +- backend/IM_API/Models/GroupRequestExt.cs | 22 +- backend/IM_API/Models/GroupRequestState.cs | 36 +- backend/IM_API/Models/GroupStatus.cs | 28 +- backend/IM_API/Models/Groupinvite.cs | 82 +- backend/IM_API/Models/Groupmember.cs | 70 +- backend/IM_API/Models/Grouprequest.cs | 82 +- backend/IM_API/Models/ImContext.Custom.cs | 200 +- backend/IM_API/Models/ImContext.cs | 1482 +- backend/IM_API/Models/LoginLog.cs | 66 +- backend/IM_API/Models/LoginLogExt.cs | 22 +- backend/IM_API/Models/LoginState.cs | 36 +- backend/IM_API/Models/Message.cs | 132 +- backend/IM_API/Models/MessageExt.cs | 42 +- backend/IM_API/Models/MessageMsgType.cs | 26 +- backend/IM_API/Models/MessageState.cs | 28 +- backend/IM_API/Models/Notification.cs | 76 +- backend/IM_API/Models/Permission.cs | 66 +- backend/IM_API/Models/Permissionarole.cs | 46 +- backend/IM_API/Models/Role.cs | 60 +- backend/IM_API/Models/User.cs | 182 +- backend/IM_API/Models/UserExt.cs | 32 +- backend/IM_API/Models/UserOlineStatus.cs | 36 +- backend/IM_API/Models/UserStatus.cs | 18 +- backend/IM_API/Program.cs | 320 +- backend/IM_API/Properties/launchSettings.json | 102 +- backend/IM_API/Services/AuthService.cs | 106 +- .../IM_API/Services/ConversationService.cs | 362 +- backend/IM_API/Services/FriendService.cs | 440 +- backend/IM_API/Services/GroupService.cs | 502 +- backend/IM_API/Services/JWTService.cs | 110 +- backend/IM_API/Services/MessageService.cs | 328 +- backend/IM_API/Services/RedisCacheService.cs | 124 +- .../Services/RedisRefreshTokenService.cs | 132 +- backend/IM_API/Services/SequenceIdService.cs | 92 +- backend/IM_API/Services/UserService.cs | 258 +- backend/IM_API/Tools/CodeDefine.cs | 218 +- backend/IM_API/Tools/PasswordHasher.cs | 42 +- backend/IM_API/Tools/RedisKeys.cs | 22 +- backend/IM_API/Tools/SignalRMethodDefine.cs | 14 +- backend/IM_API/Tools/StreamKeyBuilder.cs | 34 +- backend/IM_API/Tools/UTCConverter.cs | 36 +- backend/IM_API/VOs/Auth/LoginVo.cs | 36 +- .../IM_API/VOs/Conversation/ConversationVo.cs | 106 +- .../VOs/Group/GroupInviteActionUpdateVo.cs | 26 +- backend/IM_API/VOs/Group/GroupInviteVo.cs | 18 +- backend/IM_API/VOs/Group/GroupJoinVo.cs | 16 +- .../IM_API/VOs/Group/GroupRequestUpdateVo.cs | 18 +- backend/IM_API/VOs/Message/MessageBaseVo.cs | 22 +- backend/IM_API/appsettings.Development.json | 16 +- backend/IM_API/appsettings.json | 52 +- .../v17/DocumentLayout.backup.json | 112 +- .../.vs/SignalRTest/v17/DocumentLayout.json | 110 +- backend/SignalRTest/Form1.Designer.cs | 412 +- backend/SignalRTest/Form1.cs | 286 +- backend/SignalRTest/Form1.resx | 244 +- backend/SignalRTest/Program.cs | 32 +- .../PublishProfiles/FolderProfile.pubxml | 30 +- .../PublishProfiles/FolderProfile.pubxml.user | 14 +- backend/SignalRTest/SignalRTest.csproj | 28 +- backend/SignalRTest/SignalRTest.csproj.user | 20 +- backend/SignalRTest/SignalRTest.sln | 50 +- .../net8.0-windows/SignalRTest.deps.json | 836 +- .../SignalRTest.runtimeconfig.json | 36 +- .../net8.0-windows/SignalRTest.deps.json | 836 +- .../SignalRTest.runtimeconfig.json | 38 +- .../win-x64/SignalRTest.deps.json | 2736 +-- .../win-x64/SignalRTest.runtimeconfig.json | 38 +- ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 8 +- .../SignalRTest.AssemblyInfo.cs | 50 +- .../SignalRTest.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 44 +- .../SignalRTest.GlobalUsings.g.cs | 20 +- ...SignalRTest.csproj.CoreCompileInputs.cache | 2 +- .../SignalRTest.csproj.FileListAbsolute.txt | 82 +- .../SignalRTest.designer.deps.json | 810 +- .../SignalRTest.designer.runtimeconfig.json | 48 +- .../SignalRTest.genruntimeconfig.cache | 2 +- ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 8 +- .../SignalRTest.AssemblyInfo.cs | 50 +- .../SignalRTest.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 44 +- .../SignalRTest.GlobalUsings.g.cs | 20 +- ...SignalRTest.csproj.CoreCompileInputs.cache | 2 +- .../SignalRTest.csproj.FileListAbsolute.txt | 82 +- .../SignalRTest.genruntimeconfig.cache | 2 +- ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 8 +- .../win-x64/PublishOutputs.c7711f52c6.txt | 14 +- .../win-x64/SignalRTest.AssemblyInfo.cs | 50 +- .../SignalRTest.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 52 +- .../win-x64/SignalRTest.GlobalUsings.g.cs | 20 +- ...SignalRTest.csproj.CoreCompileInputs.cache | 2 +- .../SignalRTest.csproj.FileListAbsolute.txt | 990 +- .../win-x64/SignalRTest.deps.json | 2648 +-- .../win-x64/SignalRTest.genbundle.cache | 2 +- .../win-x64/SignalRTest.genpublishdeps.cache | 2 +- .../SignalRTest.genruntimeconfig.cache | 2 +- .../obj/SignalRTest.csproj.nuget.dgspec.json | 164 +- .../obj/SignalRTest.csproj.nuget.g.props | 30 +- .../obj/SignalRTest.csproj.nuget.g.targets | 14 +- backend/SignalRTest/obj/project.assets.json | 2304 +- backend/SignalRTest/obj/project.nuget.cache | 60 +- .../SignalRTest.csproj.nuget.dgspec.json | 214 +- .../win-x64/SignalRTest.csproj.nuget.g.props | 42 +- .../SignalRTest.csproj.nuget.g.targets | 14 +- .../obj/publish/win-x64/project.assets.json | 3246 +-- .../obj/publish/win-x64/project.nuget.cache | 68 +- docs/ER图.drawio | 2188 +- docs/IM 系统消息存储与推送策略文档.md | 280 +- docs/IM 系统鉴权与 Token 安全规范文档.md | 230 +- docs/vue3组件文档.md | 298 +- docs/后端代码规范文档.md | 164 +- docs/接口文档(REST API) — 聊天系统.md | 800 +- docs/数据字典.md | 444 +- docs/测试环境文档.md | 108 +- docs/系统架构设计.md | 72 +- docs/需求规格说明书(SRS).md | 126 +- docs/📘 WebSocket 通讯协议设计文档.md | 568 +- docs/📘 接口响应 Code 设计文档.md | 288 +- frontend/app/.gitignore | 90 +- frontend/app/README.md | 32 +- frontend/app/analysis_options.yaml | 56 +- frontend/app/android/.gitignore | 28 +- frontend/app/android/app/build.gradle.kts | 88 +- .../android/app/src/debug/AndroidManifest.xml | 14 +- .../android/app/src/main/AndroidManifest.xml | 90 +- .../kotlin/com/example/app/MainActivity.kt | 10 +- .../res/drawable-v21/launch_background.xml | 24 +- .../main/res/drawable/launch_background.xml | 24 +- .../app/src/main/res/values-night/styles.xml | 36 +- .../app/src/main/res/values/styles.xml | 36 +- .../app/src/profile/AndroidManifest.xml | 14 +- frontend/app/android/build.gradle.kts | 54 +- frontend/app/android/gradle.properties | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 12 +- frontend/app/android/settings.gradle.kts | 56 +- frontend/app/ios/.gitignore | 68 +- .../app/ios/Flutter/AppFrameworkInfo.plist | 52 +- frontend/app/ios/Flutter/Debug.xcconfig | 2 +- frontend/app/ios/Flutter/Release.xcconfig | 2 +- .../app/ios/Runner.xcodeproj/project.pbxproj | 1232 +- .../contents.xcworkspacedata | 14 +- .../xcshareddata/IDEWorkspaceChecks.plist | 16 +- .../xcshareddata/WorkspaceSettings.xcsettings | 16 +- .../xcshareddata/xcschemes/Runner.xcscheme | 202 +- .../contents.xcworkspacedata | 14 +- .../xcshareddata/IDEWorkspaceChecks.plist | 16 +- .../xcshareddata/WorkspaceSettings.xcsettings | 16 +- frontend/app/ios/Runner/AppDelegate.swift | 26 +- .../AppIcon.appiconset/Contents.json | 244 +- .../LaunchImage.imageset/Contents.json | 46 +- .../LaunchImage.imageset/README.md | 8 +- .../Runner/Base.lproj/LaunchScreen.storyboard | 74 +- .../app/ios/Runner/Base.lproj/Main.storyboard | 52 +- frontend/app/ios/Runner/Info.plist | 98 +- .../app/ios/Runner/Runner-Bridging-Header.h | 2 +- .../app/ios/RunnerTests/RunnerTests.swift | 24 +- frontend/app/lib/app.dart | 26 +- .../app/lib/core/constants/app_colors.dart | 8 +- frontend/app/lib/core/router/app_router.dart | 50 +- .../features/auth/bloc/login_page_state.dart | 332 +- .../lib/features/auth/pages/login_page.dart | 22 +- .../features/home/bloc/index_page_state.dart | 18 +- .../features/home/bloc/main_page_state.dart | 36 +- .../lib/features/home/pages/index_page.dart | 22 +- .../lib/features/home/pages/main_page.dart | 24 +- frontend/app/lib/main.dart | 18 +- frontend/app/pubspec.lock | 468 +- frontend/app/pubspec.yaml | 186 +- frontend/app/test/widget_test.dart | 58 +- frontend/app/web/index.html | 76 +- frontend/app/web/manifest.json | 70 +- .../web/src/components/groups/CreateGroup.vue | 12 +- 339 files changed, 46655 insertions(+), 46657 deletions(-) diff --git a/.gitea/ISSUE_TEMPLATE/bug.yaml b/.gitea/ISSUE_TEMPLATE/bug.yaml index f94e41d..038d270 100644 --- a/.gitea/ISSUE_TEMPLATE/bug.yaml +++ b/.gitea/ISSUE_TEMPLATE/bug.yaml @@ -1,28 +1,28 @@ -name: "IM 缺陷报告" -description: "记录聊天消息、SignalR 或缓存相关的问题" -title: "[BUG]简要描述问题" -labels: ["bug", "high-priority"] -body: - - type: markdown - attributes: - value: "请详细填写 Bug 信息,这将有助于快速定位后端 Redis 或 SignalR 的问题。" - - type: input - id: stream_key - attributes: - label: "相关 StreamKey / 群组 ID" - placeholder: "例如:group:123" - - type: textarea - id: steps - attributes: - label: "复现步骤" - value: | - 1. 登录用户 A 和用户 B - 2. 用户 A 向群组发送消息 - 3. 用户 B 界面没有反应 - validations: - required: true - - type: textarea - id: logs - attributes: - label: "控制台错误日志 (Console Log)" +name: "IM 缺陷报告" +description: "记录聊天消息、SignalR 或缓存相关的问题" +title: "[BUG]简要描述问题" +labels: ["bug", "high-priority"] +body: + - type: markdown + attributes: + value: "请详细填写 Bug 信息,这将有助于快速定位后端 Redis 或 SignalR 的问题。" + - type: input + id: stream_key + attributes: + label: "相关 StreamKey / 群组 ID" + placeholder: "例如:group:123" + - type: textarea + id: steps + attributes: + label: "复现步骤" + value: | + 1. 登录用户 A 和用户 B + 2. 用户 A 向群组发送消息 + 3. 用户 B 界面没有反应 + validations: + required: true + - type: textarea + id: logs + attributes: + label: "控制台错误日志 (Console Log)" placeholder: "在此粘贴浏览器或后端的报错信息..." \ No newline at end of file diff --git a/README.md b/README.md index 34feb2a..6076084 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ -# Chat - +# Chat + 一个学习项目 \ No newline at end of file diff --git a/backend/IMTest/.gitignore b/backend/IMTest/.gitignore index 3e16852..0e6ce67 100644 --- a/backend/IMTest/.gitignore +++ b/backend/IMTest/.gitignore @@ -1,3 +1,3 @@ -bin/ -obj/ +bin/ +obj/ .vs/ \ No newline at end of file diff --git a/backend/IMTest/IMTest.csproj b/backend/IMTest/IMTest.csproj index ce9db65..dbe36bc 100644 --- a/backend/IMTest/IMTest.csproj +++ b/backend/IMTest/IMTest.csproj @@ -1,29 +1,29 @@ - - - - net8.0 - enable - enable - - false - true - - - - - - - - - - - - - - - - - - - - + + + + net8.0 + enable + enable + + false + true + + + + + + + + + + + + + + + + + + + + diff --git a/backend/IMTest/Service/AuthServiceTest.cs b/backend/IMTest/Service/AuthServiceTest.cs index de75b8d..0c50b1f 100644 --- a/backend/IMTest/Service/AuthServiceTest.cs +++ b/backend/IMTest/Service/AuthServiceTest.cs @@ -1,208 +1,208 @@ -using AutoMapper; -using IM_API.Dtos.Auth; -using IM_API.Dtos.User; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Services; -using IM_API.Tools; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging; -using Moq; -using System; -using System.Threading; -using System.Threading.Tasks; -using Xunit; - -public class AuthServiceTests -{ - // ---------- InMemory DbContext ---------- - private ImContext CreateDbContext() - { - var options = new DbContextOptionsBuilder() - .UseInMemoryDatabase(Guid.NewGuid().ToString()) - .Options; - - var context = new ImContext(options); - return context; - } - - // ---------- ģ SaveChanges 쳣 DbContext ---------- - private class ThrowOnSaveImContext : ImContext - { - private readonly bool _throw; - public ThrowOnSaveImContext(DbContextOptions options, bool throwOnSave) : base(options) - { - _throw = throwOnSave; - } - - public override Task SaveChangesAsync(CancellationToken cancellationToken = default) - { - if (_throw) throw new InvalidOperationException("Simulated DB save error"); - return base.SaveChangesAsync(cancellationToken); - } - } - - // ---------- Ĭ AutoMapperӳã ---------- - private IMapper CreateMapper() - { - var config = new MapperConfiguration(cfg => - { - cfg.CreateMap(); - cfg.CreateMap(); - }); - return config.CreateMapper(); - } - - // ---------- ServiceעԶ mapper ---------- - private AuthService CreateService(ImContext context, IMapper mapper = null) - { - var loggerMock = new Mock>(); - var mapperToUse = mapper ?? CreateMapper(); - var mockCache = new Mock(); - return new AuthService(context, loggerMock.Object, mapperToUse,mockCache.Object); - } - - // --------------------- --------------------- - - [Fact] - public async Task LoginAsync_ShouldReturnUser_WhenValidCredentials() - { - var context = CreateDbContext(); - context.Users.Add(new User { Id = 1, Username = "Tom", Password = "123456", NickName = "û" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - - var result = await service.LoginAsync(new LoginRequestDto - { - Username = "Tom", - Password = "123456" - }); - - Assert.NotNull(result); - Assert.Equal(1, result.Id); - Assert.Equal("Tom", result.Username); - } - - [Fact] - public async Task LoginAsync_ShouldThrowException_WhenInvalidCredentials() - { - var context = CreateDbContext(); - var service = CreateService(context); - - await Assert.ThrowsAsync(async () => - { - await service.LoginAsync(new LoginRequestDto - { - Username = "NotExist", - Password = "wrong" - }); - }); - } - - [Fact] - public async Task LoginAsync_IsCaseSensitive_ForUsername() - { - // ˵ǰʵǾȷƥ => ִСд - var context = CreateDbContext(); - context.Users.Add(new User { Id = 10, Username = "Tom", Password = "p" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - - // ʹСдûӦʧܣǰ߼ִСд - await Assert.ThrowsAsync(async () => - { - await service.LoginAsync(new LoginRequestDto { Username = "tom", Password = "p" }); - }); - } - - [Fact] - public async Task RegisterAsync_ShouldPersistUserAndReturnDto_WhenNewUser() - { - var context = CreateDbContext(); - var service = CreateService(context); - - var request = new RegisterRequestDto - { - Username = "Jerry", - Password = "123456" - }; - - var result = await service.RegisterAsync(request); - - // ֵȷ - Assert.NotNull(result); - Assert.Equal("Jerry", result.Username); - Assert.True(result.Id > 0); - - // DB ȷʵڸû - var persisted = await context.Users.FirstOrDefaultAsync(u => u.Username == "Jerry"); - Assert.NotNull(persisted); - Assert.Equal("Jerry", persisted.Username); - } - - [Fact] - public async Task RegisterAsync_ShouldThrowException_WhenUserExists() - { - var context = CreateDbContext(); - context.Users.Add(new User { Username = "Tom", Password = "12223" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - - var request = new RegisterRequestDto { Username = "Tom", Password = "123" }; - - await Assert.ThrowsAsync(() => service.RegisterAsync(request)); - } - - [Fact] - public async Task RegisterAsync_ShouldThrow_WhenMapperThrows() - { - var context = CreateDbContext(); - - var mapperMock = new Mock(); - mapperMock.Setup(m => m.Map(It.IsAny())) - .Throws(new Exception("mapper failure")); - - var service = CreateService(context, mapperMock.Object); - - var req = new RegisterRequestDto { Username = "A", Password = "B" }; - - var ex = await Assert.ThrowsAsync(() => service.RegisterAsync(req)); - Assert.Contains("mapper failure", ex.Message); - } - - [Fact] - public async Task RegisterAsync_ShouldPropagateSaveException_WhenSaveFails() - { - var options = new DbContextOptionsBuilder() - .UseInMemoryDatabase(Guid.NewGuid().ToString()) - .Options; - - // ʹԶ SaveChanges ʱ쳣 - var throwingContext = new ThrowOnSaveImContext(options, throwOnSave: true); - - var service = CreateService(throwingContext); - - var req = new RegisterRequestDto { Username = "X", Password = "P" }; - - var ex = await Assert.ThrowsAsync(() => service.RegisterAsync(req)); - Assert.Contains("Simulated DB save error", ex.Message); - } - - [Fact] - public async Task RegisterAsync_NullDto_ThrowsNullReferenceException_CurrentBehavior() - { - // ˵ǰʵûж dto Ϊ null 飬ᴥ NullReferenceException - // 飺иΪ ArgumentNullException ߽вУ鲢ȷ - var context = CreateDbContext(); - var service = CreateService(context); - - await Assert.ThrowsAsync(async () => - { - await service.RegisterAsync(null); - }); - } -} +using AutoMapper; +using IM_API.Dtos.Auth; +using IM_API.Dtos.User; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Services; +using IM_API.Tools; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using Moq; +using System; +using System.Threading; +using System.Threading.Tasks; +using Xunit; + +public class AuthServiceTests +{ + // ---------- InMemory DbContext ---------- + private ImContext CreateDbContext() + { + var options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(Guid.NewGuid().ToString()) + .Options; + + var context = new ImContext(options); + return context; + } + + // ---------- ģ SaveChanges 쳣 DbContext ---------- + private class ThrowOnSaveImContext : ImContext + { + private readonly bool _throw; + public ThrowOnSaveImContext(DbContextOptions options, bool throwOnSave) : base(options) + { + _throw = throwOnSave; + } + + public override Task SaveChangesAsync(CancellationToken cancellationToken = default) + { + if (_throw) throw new InvalidOperationException("Simulated DB save error"); + return base.SaveChangesAsync(cancellationToken); + } + } + + // ---------- Ĭ AutoMapperӳã ---------- + private IMapper CreateMapper() + { + var config = new MapperConfiguration(cfg => + { + cfg.CreateMap(); + cfg.CreateMap(); + }); + return config.CreateMapper(); + } + + // ---------- ServiceעԶ mapper ---------- + private AuthService CreateService(ImContext context, IMapper mapper = null) + { + var loggerMock = new Mock>(); + var mapperToUse = mapper ?? CreateMapper(); + var mockCache = new Mock(); + return new AuthService(context, loggerMock.Object, mapperToUse,mockCache.Object); + } + + // --------------------- --------------------- + + [Fact] + public async Task LoginAsync_ShouldReturnUser_WhenValidCredentials() + { + var context = CreateDbContext(); + context.Users.Add(new User { Id = 1, Username = "Tom", Password = "123456", NickName = "û" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + + var result = await service.LoginAsync(new LoginRequestDto + { + Username = "Tom", + Password = "123456" + }); + + Assert.NotNull(result); + Assert.Equal(1, result.Id); + Assert.Equal("Tom", result.Username); + } + + [Fact] + public async Task LoginAsync_ShouldThrowException_WhenInvalidCredentials() + { + var context = CreateDbContext(); + var service = CreateService(context); + + await Assert.ThrowsAsync(async () => + { + await service.LoginAsync(new LoginRequestDto + { + Username = "NotExist", + Password = "wrong" + }); + }); + } + + [Fact] + public async Task LoginAsync_IsCaseSensitive_ForUsername() + { + // ˵ǰʵǾȷƥ => ִСд + var context = CreateDbContext(); + context.Users.Add(new User { Id = 10, Username = "Tom", Password = "p" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + + // ʹСдûӦʧܣǰ߼ִСд + await Assert.ThrowsAsync(async () => + { + await service.LoginAsync(new LoginRequestDto { Username = "tom", Password = "p" }); + }); + } + + [Fact] + public async Task RegisterAsync_ShouldPersistUserAndReturnDto_WhenNewUser() + { + var context = CreateDbContext(); + var service = CreateService(context); + + var request = new RegisterRequestDto + { + Username = "Jerry", + Password = "123456" + }; + + var result = await service.RegisterAsync(request); + + // ֵȷ + Assert.NotNull(result); + Assert.Equal("Jerry", result.Username); + Assert.True(result.Id > 0); + + // DB ȷʵڸû + var persisted = await context.Users.FirstOrDefaultAsync(u => u.Username == "Jerry"); + Assert.NotNull(persisted); + Assert.Equal("Jerry", persisted.Username); + } + + [Fact] + public async Task RegisterAsync_ShouldThrowException_WhenUserExists() + { + var context = CreateDbContext(); + context.Users.Add(new User { Username = "Tom", Password = "12223" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + + var request = new RegisterRequestDto { Username = "Tom", Password = "123" }; + + await Assert.ThrowsAsync(() => service.RegisterAsync(request)); + } + + [Fact] + public async Task RegisterAsync_ShouldThrow_WhenMapperThrows() + { + var context = CreateDbContext(); + + var mapperMock = new Mock(); + mapperMock.Setup(m => m.Map(It.IsAny())) + .Throws(new Exception("mapper failure")); + + var service = CreateService(context, mapperMock.Object); + + var req = new RegisterRequestDto { Username = "A", Password = "B" }; + + var ex = await Assert.ThrowsAsync(() => service.RegisterAsync(req)); + Assert.Contains("mapper failure", ex.Message); + } + + [Fact] + public async Task RegisterAsync_ShouldPropagateSaveException_WhenSaveFails() + { + var options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(Guid.NewGuid().ToString()) + .Options; + + // ʹԶ SaveChanges ʱ쳣 + var throwingContext = new ThrowOnSaveImContext(options, throwOnSave: true); + + var service = CreateService(throwingContext); + + var req = new RegisterRequestDto { Username = "X", Password = "P" }; + + var ex = await Assert.ThrowsAsync(() => service.RegisterAsync(req)); + Assert.Contains("Simulated DB save error", ex.Message); + } + + [Fact] + public async Task RegisterAsync_NullDto_ThrowsNullReferenceException_CurrentBehavior() + { + // ˵ǰʵûж dto Ϊ null 飬ᴥ NullReferenceException + // 飺иΪ ArgumentNullException ߽вУ鲢ȷ + var context = CreateDbContext(); + var service = CreateService(context); + + await Assert.ThrowsAsync(async () => + { + await service.RegisterAsync(null); + }); + } +} diff --git a/backend/IMTest/Service/FriendServiceTest.cs b/backend/IMTest/Service/FriendServiceTest.cs index 747d7aa..08905f9 100644 --- a/backend/IMTest/Service/FriendServiceTest.cs +++ b/backend/IMTest/Service/FriendServiceTest.cs @@ -1,149 +1,149 @@ -using AutoMapper; -using IM_API.Domain.Events; -using IM_API.Dtos.Friend; -using IM_API.Exceptions; -using IM_API.Models; -using IM_API.Services; -using MassTransit; // 必须引入 -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging; -using Moq; -using System; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; -using Xunit; - -public class FriendServiceTests -{ - private readonly Mock _mockEndpoint = new(); - private readonly Mock> _mockLogger = new(); - - #region 辅助构造方法 - private ImContext CreateDbContext() - { - var options = new DbContextOptionsBuilder() - .UseInMemoryDatabase(Guid.NewGuid().ToString()) // 确保每个测试数据库隔离 - .Options; - return new ImContext(options); - } - - private IMapper CreateMapper() - { - var config = new MapperConfiguration(cfg => - { - // 补充你业务中实际需要的映射规则 - cfg.CreateMap(); - cfg.CreateMap(); - cfg.CreateMap() - .ForMember(d => d.UserId, o => o.MapFrom(s => s.ResponseUser)) - .ForMember(d => d.FriendId, o => o.MapFrom(s => s.RequestUser)); - }); - return config.CreateMapper(); - } - - private FriendService CreateService(ImContext context) - { - // 注入 Mock 对象和真实的 Mapper/Context - return new FriendService(context, _mockLogger.Object, CreateMapper(), _mockEndpoint.Object); - } - #endregion - - [Fact] - public async Task SendFriendRequestAsync_Success_ShouldSaveAndPublish() - { - // Arrange - var context = CreateDbContext(); - context.Users.AddRange( - new User { Id = 1, Username = "Sender", Password = "..." }, - new User { Id = 2, Username = "Receiver", Password = "..." } - ); - await context.SaveChangesAsync(); - var service = CreateService(context); - var dto = new FriendRequestDto { ToUserId = 2, FromUserId = 2, Description = "Hello" , RemarkName = "测试备注" }; - - // Act - //var result = await service.SendFriendRequestAsync(dto); - - // Assert - //Assert.True(result); - //Assert.Single(context.FriendRequests); - - // 验证事件是否发布到了 MQ - /* - _mockEndpoint.Verify(x => x.Publish( - It.Is(e => e.FromUserId == 1 && e.ToUserId == 2), - It.IsAny()), - Times.Once); - */ - } - - [Fact] - public async Task SendFriendRequestAsync_UserNotFound_ShouldThrow() - { - // Arrange - var context = CreateDbContext(); - var service = CreateService(context); - var dto = new FriendRequestDto { ToUserId = 99 }; // 不存在的用户 - - // Act & Assert - await Assert.ThrowsAsync(() => service.SendFriendRequestAsync(dto)); - } - - [Fact] - public async Task SendFriendRequestAsync_AlreadyExists_ShouldThrow() - { - // Arrange - var context = CreateDbContext(); - context.Users.Add(new User { Id = 2, Password = "123", Username = "111" }); - context.FriendRequests.Add(new FriendRequest - { - RequestUser = 1, - ResponseUser = 2, - State = (sbyte)FriendRequestState.Pending, - RemarkName = "测试备注" - }); - await context.SaveChangesAsync(); - var service = CreateService(context); - - // Act & Assert - await Assert.ThrowsAsync(() => service.SendFriendRequestAsync(new FriendRequestDto { ToUserId = 2 })); - } - - [Fact] - public async Task BlockFriendAsync_ValidId_ShouldUpdateStatus() - { - // Arrange - var context = CreateDbContext(); - var friend = new Friend { Id = 50, UserId = 1, FriendId = 2, StatusEnum = FriendStatus.Added,RemarkName = "测试备注" }; - context.Friends.Add(friend); - await context.SaveChangesAsync(); - var service = CreateService(context); - - // Act - await service.BlockeFriendAsync(50); - - // Assert - var updated = await context.Friends.FindAsync(50); - Assert.Equal(FriendStatus.Blocked, updated.StatusEnum); - } - - [Fact] - public async Task GetFriendListAsync_ShouldFilterByStatus() - { - // Arrange - var context = CreateDbContext(); - context.Friends.AddRange( - new Friend { UserId = 1, FriendId = 2, StatusEnum = FriendStatus.Added,RemarkName = "111" }, - new Friend { UserId = 1, FriendId = 3, StatusEnum = FriendStatus.Blocked,RemarkName = "222" } - ); - await context.SaveChangesAsync(); - var service = CreateService(context); - - // Act - var result = await service.GetFriendListAsync(1, 1, 10, false); - - // Assert - //Assert.Single(result); // 只应该拿到 Added 状态的 - } +using AutoMapper; +using IM_API.Domain.Events; +using IM_API.Dtos.Friend; +using IM_API.Exceptions; +using IM_API.Models; +using IM_API.Services; +using MassTransit; // 必须引入 +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using Moq; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Xunit; + +public class FriendServiceTests +{ + private readonly Mock _mockEndpoint = new(); + private readonly Mock> _mockLogger = new(); + + #region 辅助构造方法 + private ImContext CreateDbContext() + { + var options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(Guid.NewGuid().ToString()) // 确保每个测试数据库隔离 + .Options; + return new ImContext(options); + } + + private IMapper CreateMapper() + { + var config = new MapperConfiguration(cfg => + { + // 补充你业务中实际需要的映射规则 + cfg.CreateMap(); + cfg.CreateMap(); + cfg.CreateMap() + .ForMember(d => d.UserId, o => o.MapFrom(s => s.ResponseUser)) + .ForMember(d => d.FriendId, o => o.MapFrom(s => s.RequestUser)); + }); + return config.CreateMapper(); + } + + private FriendService CreateService(ImContext context) + { + // 注入 Mock 对象和真实的 Mapper/Context + return new FriendService(context, _mockLogger.Object, CreateMapper(), _mockEndpoint.Object); + } + #endregion + + [Fact] + public async Task SendFriendRequestAsync_Success_ShouldSaveAndPublish() + { + // Arrange + var context = CreateDbContext(); + context.Users.AddRange( + new User { Id = 1, Username = "Sender", Password = "..." }, + new User { Id = 2, Username = "Receiver", Password = "..." } + ); + await context.SaveChangesAsync(); + var service = CreateService(context); + var dto = new FriendRequestDto { ToUserId = 2, FromUserId = 2, Description = "Hello" , RemarkName = "测试备注" }; + + // Act + //var result = await service.SendFriendRequestAsync(dto); + + // Assert + //Assert.True(result); + //Assert.Single(context.FriendRequests); + + // 验证事件是否发布到了 MQ + /* + _mockEndpoint.Verify(x => x.Publish( + It.Is(e => e.FromUserId == 1 && e.ToUserId == 2), + It.IsAny()), + Times.Once); + */ + } + + [Fact] + public async Task SendFriendRequestAsync_UserNotFound_ShouldThrow() + { + // Arrange + var context = CreateDbContext(); + var service = CreateService(context); + var dto = new FriendRequestDto { ToUserId = 99 }; // 不存在的用户 + + // Act & Assert + await Assert.ThrowsAsync(() => service.SendFriendRequestAsync(dto)); + } + + [Fact] + public async Task SendFriendRequestAsync_AlreadyExists_ShouldThrow() + { + // Arrange + var context = CreateDbContext(); + context.Users.Add(new User { Id = 2, Password = "123", Username = "111" }); + context.FriendRequests.Add(new FriendRequest + { + RequestUser = 1, + ResponseUser = 2, + State = (sbyte)FriendRequestState.Pending, + RemarkName = "测试备注" + }); + await context.SaveChangesAsync(); + var service = CreateService(context); + + // Act & Assert + await Assert.ThrowsAsync(() => service.SendFriendRequestAsync(new FriendRequestDto { ToUserId = 2 })); + } + + [Fact] + public async Task BlockFriendAsync_ValidId_ShouldUpdateStatus() + { + // Arrange + var context = CreateDbContext(); + var friend = new Friend { Id = 50, UserId = 1, FriendId = 2, StatusEnum = FriendStatus.Added,RemarkName = "测试备注" }; + context.Friends.Add(friend); + await context.SaveChangesAsync(); + var service = CreateService(context); + + // Act + await service.BlockeFriendAsync(50); + + // Assert + var updated = await context.Friends.FindAsync(50); + Assert.Equal(FriendStatus.Blocked, updated.StatusEnum); + } + + [Fact] + public async Task GetFriendListAsync_ShouldFilterByStatus() + { + // Arrange + var context = CreateDbContext(); + context.Friends.AddRange( + new Friend { UserId = 1, FriendId = 2, StatusEnum = FriendStatus.Added,RemarkName = "111" }, + new Friend { UserId = 1, FriendId = 3, StatusEnum = FriendStatus.Blocked,RemarkName = "222" } + ); + await context.SaveChangesAsync(); + var service = CreateService(context); + + // Act + var result = await service.GetFriendListAsync(1, 1, 10, false); + + // Assert + //Assert.Single(result); // 只应该拿到 Added 状态的 + } } \ No newline at end of file diff --git a/backend/IMTest/Service/GroupServiceTest.cs b/backend/IMTest/Service/GroupServiceTest.cs index 445150a..f9d037c 100644 --- a/backend/IMTest/Service/GroupServiceTest.cs +++ b/backend/IMTest/Service/GroupServiceTest.cs @@ -1,94 +1,94 @@ -using AutoMapper; -using IM_API.Dtos.Group; -using IM_API.Models; -using IM_API.Services; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging; -using Moq; -using Xunit; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using MassTransit; -using IM_API.Configs; -using Microsoft.EntityFrameworkCore.Infrastructure; - -namespace IM_API.Tests.Services -{ - public class GroupServiceTests - { - private readonly ImContext _context; - private readonly IMapper _mapper; - private readonly Mock> _loggerMock = new(); - private readonly Mock _publishMock = new(); - - public GroupServiceTests() - { - // 1. 配置内存数据库 - var options = new DbContextOptionsBuilder() - .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) - .Options; - _context = new ImContext(options); - - // 2. 配置真实的 AutoMapper (ProjectTo 必须使用真实配置,不能用 Mock) - var config = new MapperConfiguration(cfg => - { - // 替换为你项目中真实的 Profile 类名 - cfg.AddProfile(); - // 如果有多个 Profile,可以继续添加或者加载整个程序集 - // cfg.AddMaps(typeof(GroupProfile).Assembly); - }); - _mapper = config.CreateMapper(); - } - - [Fact] - public async Task GetGroupList_ShouldReturnPagedAndOrderedData() - { - // Arrange (准备数据) - var userId = 1; - var groups = new List - { - new Group { Id = 101, Name = "Group A", Avatar = "1111" }, - new Group { Id = 102, Name = "Group B" , Avatar = "1111"}, - new Group { Id = 103, Name = "Group C", Avatar = "1111" } - }; - - _context.Groups.AddRange(groups); - _context.GroupMembers.AddRange(new List - { - new GroupMember { UserId = userId, GroupId = 101 }, - new GroupMember { UserId = userId, GroupId = 102 }, - new GroupMember { UserId = userId, GroupId = 103 } - }); - await _context.SaveChangesAsync(); - - var userService = new Mock(); - - var service = new GroupService(_context, _mapper, _loggerMock.Object, _publishMock.Object,userService.Object); - - // Act (执行测试: 第1页,每页2条,倒序) - var result = await service.GetGroupListAsync(userId, page: 1, limit: 2, desc: true); - - // Assert (断言) - Assert.NotNull(result); - Assert.Equal(2, result.Count); - Assert.Equal(103, result[0].Id); // 倒序最大的是 103 - Assert.Equal(102, result[1].Id); - } - - [Fact] - public async Task GetGroupList_ShouldReturnEmpty_WhenUserHasNoGroups() - { - - var userSerivce = new Mock(); - // Arrange - var service = new GroupService(_context, _mapper, _loggerMock.Object, _publishMock.Object, userSerivce.Object); - - // Act - var result = await service.GetGroupListAsync(userId: 999, page: 1, limit: 10, desc: false); - - // Assert - Assert.Empty(result); - } - } +using AutoMapper; +using IM_API.Dtos.Group; +using IM_API.Models; +using IM_API.Services; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using Moq; +using Xunit; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using MassTransit; +using IM_API.Configs; +using Microsoft.EntityFrameworkCore.Infrastructure; + +namespace IM_API.Tests.Services +{ + public class GroupServiceTests + { + private readonly ImContext _context; + private readonly IMapper _mapper; + private readonly Mock> _loggerMock = new(); + private readonly Mock _publishMock = new(); + + public GroupServiceTests() + { + // 1. 配置内存数据库 + var options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) + .Options; + _context = new ImContext(options); + + // 2. 配置真实的 AutoMapper (ProjectTo 必须使用真实配置,不能用 Mock) + var config = new MapperConfiguration(cfg => + { + // 替换为你项目中真实的 Profile 类名 + cfg.AddProfile(); + // 如果有多个 Profile,可以继续添加或者加载整个程序集 + // cfg.AddMaps(typeof(GroupProfile).Assembly); + }); + _mapper = config.CreateMapper(); + } + + [Fact] + public async Task GetGroupList_ShouldReturnPagedAndOrderedData() + { + // Arrange (准备数据) + var userId = 1; + var groups = new List + { + new Group { Id = 101, Name = "Group A", Avatar = "1111" }, + new Group { Id = 102, Name = "Group B" , Avatar = "1111"}, + new Group { Id = 103, Name = "Group C", Avatar = "1111" } + }; + + _context.Groups.AddRange(groups); + _context.GroupMembers.AddRange(new List + { + new GroupMember { UserId = userId, GroupId = 101 }, + new GroupMember { UserId = userId, GroupId = 102 }, + new GroupMember { UserId = userId, GroupId = 103 } + }); + await _context.SaveChangesAsync(); + + var userService = new Mock(); + + var service = new GroupService(_context, _mapper, _loggerMock.Object, _publishMock.Object,userService.Object); + + // Act (执行测试: 第1页,每页2条,倒序) + var result = await service.GetGroupListAsync(userId, page: 1, limit: 2, desc: true); + + // Assert (断言) + Assert.NotNull(result); + Assert.Equal(2, result.Count); + Assert.Equal(103, result[0].Id); // 倒序最大的是 103 + Assert.Equal(102, result[1].Id); + } + + [Fact] + public async Task GetGroupList_ShouldReturnEmpty_WhenUserHasNoGroups() + { + + var userSerivce = new Mock(); + // Arrange + var service = new GroupService(_context, _mapper, _loggerMock.Object, _publishMock.Object, userSerivce.Object); + + // Act + var result = await service.GetGroupListAsync(userId: 999, page: 1, limit: 10, desc: false); + + // Assert + Assert.Empty(result); + } + } } \ No newline at end of file diff --git a/backend/IMTest/Service/UserServiceTest.cs b/backend/IMTest/Service/UserServiceTest.cs index 8858b14..dfebd38 100644 --- a/backend/IMTest/Service/UserServiceTest.cs +++ b/backend/IMTest/Service/UserServiceTest.cs @@ -1,186 +1,186 @@ -using AutoMapper; -using IM_API.Dtos.User; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Services; -using IM_API.Tools; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging; -using Moq; -using StackExchange.Redis; -using System; -using System.Threading.Tasks; -using Xunit; - -public class UserServiceTests -{ - private ImContext CreateDbContext() - { - var options = new DbContextOptionsBuilder() - .UseInMemoryDatabase(Guid.NewGuid().ToString()) - .Options; - - return new ImContext(options); - } - - private IMapper CreateMapper() - { - var config = new MapperConfiguration(cfg => - { - cfg.CreateMap(); - cfg.CreateMap(); - }); - return config.CreateMapper(); - } - - private UserService CreateService(ImContext context) - { - var loggerMock = new Mock>(); - var mapper = CreateMapper(); - var mockCache = new Mock(); - var res = new Mock(); - return new UserService(context, loggerMock.Object, mapper , mockCache.Object, res.Object); - } - - // ========== GetUserInfoAsync ========== - [Fact] - public async Task GetUserInfoAsync_ShouldReturnUser_WhenExists() - { - var context = CreateDbContext(); - context.Users.Add(new User { Id = 1, Username = "Tom", Password = "123456" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - var result = await service.GetUserInfoAsync(1); - - Assert.NotNull(result); - Assert.Equal("Tom", result.Username); - } - - [Fact] - public async Task GetUserInfoAsync_ShouldThrow_WhenNotFound() - { - var service = CreateService(CreateDbContext()); - - await Assert.ThrowsAsync(() => - service.GetUserInfoAsync(999) - ); - } - - // ========== GetUserInfoByUsernameAsync ========== - [Fact] - public async Task GetUserInfoByUsernameAsync_ShouldReturn_WhenExists() - { - var context = CreateDbContext(); - context.Users.Add(new User { Id = 2, Username = "Jerry", Password = "aaa" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - var result = await service.GetUserInfoByUsernameAsync("Jerry"); - - Assert.NotNull(result); - Assert.Equal(2, result.Id); - } - - [Fact] - public async Task GetUserInfoByUsernameAsync_ShouldThrow_WhenNotFound() - { - var service = CreateService(CreateDbContext()); - - await Assert.ThrowsAsync(() => - service.GetUserInfoByUsernameAsync("Nobody") - ); - } - - // ========== ResetPasswordAsync ========== - [Fact] - public async Task ResetPasswordAsync_ShouldReset_WhenCorrectPassword() - { - var context = CreateDbContext(); - context.Users.Add(new User { Id = 3, Username = "test", Password = "old" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - var result = await service.ResetPasswordAsync(3, "old", "new"); - - Assert.True(result); - Assert.Equal("new", context.Users.Find(3).Password); - } - - [Fact] - public async Task ResetPasswordAsync_ShouldThrow_WhenWrongPassword() - { - var context = CreateDbContext(); - context.Users.Add(new User { Id = 4, Username = "test", Password = "oldPwd" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - - await Assert.ThrowsAsync(() => - service.ResetPasswordAsync(4, "wrong", "new") - ); - } - - [Fact] - public async Task ResetPasswordAsync_ShouldThrow_WhenUserNotFound() - { - var service = CreateService(CreateDbContext()); - - await Assert.ThrowsAsync(() => - service.ResetPasswordAsync(123, "anything", "new") - ); - } - - // ========== UpdateOlineStatusAsync ========== - [Fact] - public async Task UpdateOlineStatusAsync_ShouldUpdateStatus() - { - var context = CreateDbContext(); - context.Users.Add(new User { Id = 5, Username = "test", Password = "p", OnlineStatusEnum = UserOnlineStatus.Offline }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - var result = await service.UpdateOlineStatusAsync(5, UserOnlineStatus.Online); - - Assert.True(result); - Assert.Equal(UserOnlineStatus.Online, context.Users.Find(5).OnlineStatusEnum); - } - - [Fact] - public async Task UpdateOlineStatusAsync_ShouldThrow_WhenUserNotFound() - { - var service = CreateService(CreateDbContext()); - - await Assert.ThrowsAsync(() => - service.UpdateOlineStatusAsync(999, UserOnlineStatus.Online) - ); - } - - // ========== UpdateUserAsync ========== - [Fact] - public async Task UpdateUserAsync_ShouldUpdateUserFields() - { - var context = CreateDbContext(); - context.Users.Add(new User { Id = 6, Username = "test", Password = "p", NickName = "OldName" }); - await context.SaveChangesAsync(); - - var service = CreateService(context); - var dto = new UpdateUserDto { NickName = "NewName" }; - - var result = await service.UpdateUserAsync(6, dto); - - Assert.NotNull(result); - Assert.Equal("NewName", context.Users.Find(6).NickName); - } - - [Fact] - public async Task UpdateUserAsync_ShouldThrow_WhenNotFound() - { - var service = CreateService(CreateDbContext()); - - await Assert.ThrowsAsync(() => - service.UpdateUserAsync(123, new UpdateUserDto { NickName = "Test" }) - ); - } -} +using AutoMapper; +using IM_API.Dtos.User; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Services; +using IM_API.Tools; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using Moq; +using StackExchange.Redis; +using System; +using System.Threading.Tasks; +using Xunit; + +public class UserServiceTests +{ + private ImContext CreateDbContext() + { + var options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(Guid.NewGuid().ToString()) + .Options; + + return new ImContext(options); + } + + private IMapper CreateMapper() + { + var config = new MapperConfiguration(cfg => + { + cfg.CreateMap(); + cfg.CreateMap(); + }); + return config.CreateMapper(); + } + + private UserService CreateService(ImContext context) + { + var loggerMock = new Mock>(); + var mapper = CreateMapper(); + var mockCache = new Mock(); + var res = new Mock(); + return new UserService(context, loggerMock.Object, mapper , mockCache.Object, res.Object); + } + + // ========== GetUserInfoAsync ========== + [Fact] + public async Task GetUserInfoAsync_ShouldReturnUser_WhenExists() + { + var context = CreateDbContext(); + context.Users.Add(new User { Id = 1, Username = "Tom", Password = "123456" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + var result = await service.GetUserInfoAsync(1); + + Assert.NotNull(result); + Assert.Equal("Tom", result.Username); + } + + [Fact] + public async Task GetUserInfoAsync_ShouldThrow_WhenNotFound() + { + var service = CreateService(CreateDbContext()); + + await Assert.ThrowsAsync(() => + service.GetUserInfoAsync(999) + ); + } + + // ========== GetUserInfoByUsernameAsync ========== + [Fact] + public async Task GetUserInfoByUsernameAsync_ShouldReturn_WhenExists() + { + var context = CreateDbContext(); + context.Users.Add(new User { Id = 2, Username = "Jerry", Password = "aaa" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + var result = await service.GetUserInfoByUsernameAsync("Jerry"); + + Assert.NotNull(result); + Assert.Equal(2, result.Id); + } + + [Fact] + public async Task GetUserInfoByUsernameAsync_ShouldThrow_WhenNotFound() + { + var service = CreateService(CreateDbContext()); + + await Assert.ThrowsAsync(() => + service.GetUserInfoByUsernameAsync("Nobody") + ); + } + + // ========== ResetPasswordAsync ========== + [Fact] + public async Task ResetPasswordAsync_ShouldReset_WhenCorrectPassword() + { + var context = CreateDbContext(); + context.Users.Add(new User { Id = 3, Username = "test", Password = "old" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + var result = await service.ResetPasswordAsync(3, "old", "new"); + + Assert.True(result); + Assert.Equal("new", context.Users.Find(3).Password); + } + + [Fact] + public async Task ResetPasswordAsync_ShouldThrow_WhenWrongPassword() + { + var context = CreateDbContext(); + context.Users.Add(new User { Id = 4, Username = "test", Password = "oldPwd" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + + await Assert.ThrowsAsync(() => + service.ResetPasswordAsync(4, "wrong", "new") + ); + } + + [Fact] + public async Task ResetPasswordAsync_ShouldThrow_WhenUserNotFound() + { + var service = CreateService(CreateDbContext()); + + await Assert.ThrowsAsync(() => + service.ResetPasswordAsync(123, "anything", "new") + ); + } + + // ========== UpdateOlineStatusAsync ========== + [Fact] + public async Task UpdateOlineStatusAsync_ShouldUpdateStatus() + { + var context = CreateDbContext(); + context.Users.Add(new User { Id = 5, Username = "test", Password = "p", OnlineStatusEnum = UserOnlineStatus.Offline }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + var result = await service.UpdateOlineStatusAsync(5, UserOnlineStatus.Online); + + Assert.True(result); + Assert.Equal(UserOnlineStatus.Online, context.Users.Find(5).OnlineStatusEnum); + } + + [Fact] + public async Task UpdateOlineStatusAsync_ShouldThrow_WhenUserNotFound() + { + var service = CreateService(CreateDbContext()); + + await Assert.ThrowsAsync(() => + service.UpdateOlineStatusAsync(999, UserOnlineStatus.Online) + ); + } + + // ========== UpdateUserAsync ========== + [Fact] + public async Task UpdateUserAsync_ShouldUpdateUserFields() + { + var context = CreateDbContext(); + context.Users.Add(new User { Id = 6, Username = "test", Password = "p", NickName = "OldName" }); + await context.SaveChangesAsync(); + + var service = CreateService(context); + var dto = new UpdateUserDto { NickName = "NewName" }; + + var result = await service.UpdateUserAsync(6, dto); + + Assert.NotNull(result); + Assert.Equal("NewName", context.Users.Find(6).NickName); + } + + [Fact] + public async Task UpdateUserAsync_ShouldThrow_WhenNotFound() + { + var service = CreateService(CreateDbContext()); + + await Assert.ThrowsAsync(() => + service.UpdateUserAsync(123, new UpdateUserDto { NickName = "Test" }) + ); + } +} diff --git a/backend/IMTest/bin/Debug/net8.0/IMTest.deps.json b/backend/IMTest/bin/Debug/net8.0/IMTest.deps.json index 8a8287e..fca9fa5 100644 --- a/backend/IMTest/bin/Debug/net8.0/IMTest.deps.json +++ b/backend/IMTest/bin/Debug/net8.0/IMTest.deps.json @@ -1,2889 +1,2889 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": { - "IMTest/1.0.0": { - "dependencies": { - "IM_API": "1.0.0", - "Microsoft.EntityFrameworkCore.InMemory": "8.0.22", - "Microsoft.NET.Test.Sdk": "17.8.0", - "Moq": "4.20.72", - "coverlet.collector": "6.0.0", - "xunit": "2.5.3", - "xunit.runner.visualstudio": "2.5.3" - }, - "runtime": { - "IMTest.dll": {} - } - }, - "AutoMapper/12.0.1": { - "dependencies": { - "Microsoft.CSharp": "4.7.0" - }, - "runtime": { - "lib/netstandard2.1/AutoMapper.dll": { - "assemblyVersion": "12.0.0.0", - "fileVersion": "12.0.1.0" - } - } - }, - "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { - "dependencies": { - "AutoMapper": "12.0.1", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": { - "assemblyVersion": "12.0.0.0", - "fileVersion": "12.0.0.0" - } - } - }, - "Castle.Core/5.1.1": { - "dependencies": { - "System.Diagnostics.EventLog": "6.0.0" - }, - "runtime": { - "lib/net6.0/Castle.Core.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.1.1.0" - } - } - }, - "coverlet.collector/6.0.0": {}, - "MassTransit/8.5.5": { - "dependencies": { - "MassTransit.Abstractions": "8.5.5", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/net8.0/MassTransit.dll": { - "assemblyVersion": "8.5.5.0", - "fileVersion": "8.5.5.0" - } - } - }, - "MassTransit.Abstractions/8.5.5": { - "runtime": { - "lib/net8.0/MassTransit.Abstractions.dll": { - "assemblyVersion": "8.5.5.0", - "fileVersion": "8.5.5.0" - } - } - }, - "MassTransit.RabbitMQ/8.5.5": { - "dependencies": { - "MassTransit": "8.5.5", - "RabbitMQ.Client": "7.1.2" - }, - "runtime": { - "lib/net8.0/MassTransit.RabbitMqTransport.dll": { - "assemblyVersion": "8.5.5.0", - "fileVersion": "8.5.5.0" - } - } - }, - "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { - "dependencies": { - "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" - }, - "runtime": { - "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { - "assemblyVersion": "8.0.21.0", - "fileVersion": "8.0.2125.47515" - } - } - }, - "Microsoft.AspNetCore.Authorization/2.3.0": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Authentication.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Authorization": "2.3.0" - } - }, - "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.1" - } - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" - } - }, - "Microsoft.AspNetCore.Http/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.AspNetCore.WebUtilities": "2.3.0", - "Microsoft.Extensions.ObjectPool": "8.0.11", - "Microsoft.Extensions.Options": "10.0.2", - "Microsoft.Net.Http.Headers": "2.3.0" - } - }, - "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "System.Text.Encodings.Web": "8.0.0" - } - }, - "Microsoft.AspNetCore.Http.Connections/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Authorization.Policy": "2.3.0", - "Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Http": "2.3.0", - "Microsoft.AspNetCore.Http.Connections.Common": "1.2.0", - "Microsoft.AspNetCore.Routing": "2.3.0", - "Microsoft.AspNetCore.WebSockets": "2.3.0", - "Newtonsoft.Json": "13.0.4", - "System.Net.WebSockets.WebSocketProtocol": "5.1.0" - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", - "Newtonsoft.Json": "13.0.4", - "System.Buffers": "4.6.0", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.Http.Extensions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Microsoft.Net.Http.Headers": "2.3.0", - "System.Buffers": "4.6.0" - } - }, - "Microsoft.AspNetCore.Http.Features/2.3.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - } - }, - "Microsoft.AspNetCore.Routing/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Extensions": "2.3.0", - "Microsoft.AspNetCore.Routing.Abstractions": "2.3.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.ObjectPool": "8.0.11", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0" - } - }, - "Microsoft.AspNetCore.SignalR/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections": "1.2.0", - "Microsoft.AspNetCore.SignalR.Core": "1.2.0", - "Microsoft.AspNetCore.WebSockets": "2.3.0", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.SignalR.Common/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", - "Microsoft.Extensions.Options": "10.0.2", - "Newtonsoft.Json": "13.0.4", - "System.Buffers": "4.6.0" - } - }, - "Microsoft.AspNetCore.SignalR.Core/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Authorization": "2.3.0", - "Microsoft.AspNetCore.SignalR.Common": "1.2.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "1.2.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "System.IO.Pipelines": "8.0.0", - "System.Reflection.Emit": "4.7.0", - "System.Threading.Channels": "8.0.0" - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "1.2.0", - "Newtonsoft.Json": "13.0.4", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.WebSockets/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Extensions": "2.3.0", - "Microsoft.Extensions.Options": "10.0.2", - "System.Net.WebSockets.WebSocketProtocol": "5.1.0" - } - }, - "Microsoft.AspNetCore.WebUtilities/2.3.0": { - "dependencies": { - "Microsoft.Net.Http.Headers": "2.3.0", - "System.Text.Encodings.Web": "8.0.0" - } - }, - "Microsoft.Bcl.AsyncInterfaces/1.1.0": { - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "4.700.19.56404" - } - } - }, - "Microsoft.CodeCoverage/17.8.0": { - "runtime": { - "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.623.45702" - } - } - }, - "Microsoft.CSharp/4.7.0": {}, - "Microsoft.EntityFrameworkCore/8.0.22": { - "dependencies": { - "Microsoft.EntityFrameworkCore.Abstractions": "8.0.22", - "Microsoft.EntityFrameworkCore.Analyzers": "8.0.22", - "Microsoft.Extensions.Caching.Memory": "8.0.1", - "Microsoft.Extensions.Logging": "8.0.1" - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { - "assemblyVersion": "8.0.22.0", - "fileVersion": "8.0.2225.52804" - } - } - }, - "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { - "assemblyVersion": "8.0.22.0", - "fileVersion": "8.0.2225.52804" - } - } - }, - "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": {}, - "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { - "dependencies": { - "Microsoft.EntityFrameworkCore": "8.0.22" - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll": { - "assemblyVersion": "8.0.22.0", - "fileVersion": "8.0.2225.52804" - } - } - }, - "Microsoft.EntityFrameworkCore.Relational/8.0.13": { - "dependencies": { - "Microsoft.EntityFrameworkCore": "8.0.22", - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { - "assemblyVersion": "8.0.13.0", - "fileVersion": "8.0.1325.6604" - } - } - }, - "Microsoft.Extensions.ApiDescription.Server/6.0.5": {}, - "Microsoft.Extensions.Caching.Abstractions/10.0.2": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.Caching.Memory/8.0.1": { - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "10.0.2", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2", - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "10.0.2", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2", - "StackExchange.Redis": "2.9.32" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { - "assemblyVersion": "10.0.2.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - } - }, - "Microsoft.Extensions.DependencyInjection/8.0.1": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "8.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": {}, - "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - } - }, - "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Logging/8.0.1": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.2": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "System.Diagnostics.DiagnosticSource": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.ObjectPool/8.0.11": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1124.52116" - } - } - }, - "Microsoft.Extensions.Options/10.0.2": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.Primitives/10.0.2": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.IdentityModel.Abstractions/8.14.0": { - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { - "dependencies": { - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.IdentityModel.Logging/8.14.0": { - "dependencies": { - "Microsoft.IdentityModel.Abstractions": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.IdentityModel.Protocols/7.1.2": { - "dependencies": { - "Microsoft.IdentityModel.Logging": "8.14.0", - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { - "assemblyVersion": "7.1.2.0", - "fileVersion": "7.1.2.41121" - } - } - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { - "dependencies": { - "Microsoft.IdentityModel.Protocols": "7.1.2", - "System.IdentityModel.Tokens.Jwt": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { - "assemblyVersion": "7.1.2.0", - "fileVersion": "7.1.2.41121" - } - } - }, - "Microsoft.IdentityModel.Tokens/8.14.0": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.IdentityModel.Logging": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.Net.Http.Headers/2.3.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2", - "System.Buffers": "4.6.0" - } - }, - "Microsoft.NET.Test.Sdk/17.8.0": { - "dependencies": { - "Microsoft.CodeCoverage": "17.8.0", - "Microsoft.TestPlatform.TestHost": "17.8.0" - } - }, - "Microsoft.NETCore.Platforms/1.1.0": {}, - "Microsoft.NETCore.Targets/1.1.0": {}, - "Microsoft.OpenApi/1.6.14": { - "runtime": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "assemblyVersion": "1.6.14.0", - "fileVersion": "1.6.14.0" - } - } - }, - "Microsoft.TestPlatform.ObjectModel/17.8.0": { - "dependencies": { - "NuGet.Frameworks": "6.5.0", - "System.Reflection.Metadata": "1.6.0" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - }, - "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - }, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - } - }, - "resources": { - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "zh-Hant" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "zh-Hant" - } - } - }, - "Microsoft.TestPlatform.TestHost/17.8.0": { - "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.8.0", - "Newtonsoft.Json": "13.0.4" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - }, - "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - }, - "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - }, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - }, - "lib/netcoreapp3.1/testhost.dll": { - "assemblyVersion": "15.0.0.0", - "fileVersion": "17.800.23.55801" - } - }, - "resources": { - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "zh-Hant" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "zh-Hant" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "zh-Hant" - } - } - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": {}, - "Microsoft.Win32.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "Moq/4.20.72": { - "dependencies": { - "Castle.Core": "5.1.1" - }, - "runtime": { - "lib/net6.0/Moq.dll": { - "assemblyVersion": "4.20.72.0", - "fileVersion": "4.20.72.0" - } - } - }, - "MySqlConnector/2.3.5": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2" - }, - "runtime": { - "lib/net8.0/MySqlConnector.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.3.5.0" - } - } - }, - "NETStandard.Library/1.6.1": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.AppContext": "4.3.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Console": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.Compression.ZipFile": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Timer": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XDocument": "4.3.0" - } - }, - "Newtonsoft.Json/13.0.4": { - "runtime": { - "lib/net6.0/Newtonsoft.Json.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.4.30916" - } - } - }, - "NuGet.Frameworks/6.5.0": { - "runtime": { - "lib/netstandard2.0/NuGet.Frameworks.dll": { - "assemblyVersion": "6.5.0.154", - "fileVersion": "6.5.0.154" - } - } - }, - "Pipelines.Sockets.Unofficial/2.2.8": { - "dependencies": { - "System.IO.Pipelines": "8.0.0" - }, - "runtime": { - "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "2.2.8.1080" - } - } - }, - "Pomelo.EntityFrameworkCore.MySql/8.0.3": { - "dependencies": { - "Microsoft.EntityFrameworkCore.Relational": "8.0.13", - "MySqlConnector": "2.3.5" - }, - "runtime": { - "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { - "assemblyVersion": "8.0.3.0", - "fileVersion": "8.0.3.0" - } - } - }, - "RabbitMQ.Client/7.1.2": { - "dependencies": { - "System.IO.Pipelines": "8.0.0", - "System.Threading.RateLimiting": "8.0.0" - }, - "runtime": { - "lib/net8.0/RabbitMQ.Client.dll": { - "assemblyVersion": "7.0.0.0", - "fileVersion": "7.1.2.0" - } - } - }, - "RedLock.net/2.3.2": { - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.Logging": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "StackExchange.Redis": "2.9.32" - }, - "runtime": { - "lib/netstandard2.0/RedLockNet.Abstractions.dll": { - "assemblyVersion": "2.3.2.0", - "fileVersion": "2.3.2.0" - }, - "lib/netstandard2.0/RedLockNet.SERedis.dll": { - "assemblyVersion": "2.3.2.0", - "fileVersion": "2.3.2.0" - } - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.native.System/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.IO.Compression/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, - "StackExchange.Redis/2.9.32": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Pipelines.Sockets.Unofficial": "2.2.8" - }, - "runtime": { - "lib/net8.0/StackExchange.Redis.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.9.32.54708" - } - } - }, - "Swashbuckle.AspNetCore/6.6.2": { - "dependencies": { - "Microsoft.Extensions.ApiDescription.Server": "6.0.5", - "Swashbuckle.AspNetCore.Swagger": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerGen": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerUI": "6.6.2" - } - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "dependencies": { - "Microsoft.OpenApi": "1.6.14" - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { - "assemblyVersion": "6.6.2.0", - "fileVersion": "6.6.2.401" - } - } - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "dependencies": { - "Swashbuckle.AspNetCore.Swagger": "6.6.2" - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { - "assemblyVersion": "6.6.2.0", - "fileVersion": "6.6.2.401" - } - } - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { - "assemblyVersion": "6.6.2.0", - "fileVersion": "6.6.2.401" - } - } - }, - "System.AppContext/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Buffers/4.6.0": {}, - "System.Collections/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Collections.Concurrent/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Console/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Diagnostics.Debug/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.DiagnosticSource/10.0.2": { - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "System.Diagnostics.EventLog/6.0.0": {}, - "System.Diagnostics.Tools/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Calendars/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Globalization.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - } - }, - "System.IdentityModel.Tokens.Jwt/8.14.0": { - "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "runtime": { - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "System.IO/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.Compression/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Buffers": "4.6.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.IO.Compression": "4.3.0" - } - }, - "System.IO.Compression.ZipFile/4.3.0": { - "dependencies": { - "System.Buffers": "4.6.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.IO.FileSystem/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.IO.Pipelines/8.0.0": {}, - "System.Linq/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Linq.Expressions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.7.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Net.Http/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "10.0.2", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Net.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Net.Sockets/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Net.WebSockets.WebSocketProtocol/5.1.0": { - "runtime": { - "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { - "assemblyVersion": "5.1.0.0", - "fileVersion": "5.100.24.56208" - } - } - }, - "System.ObjectModel/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Reflection/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit/4.7.0": {}, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.Metadata/1.6.0": {}, - "System.Reflection.Primitives/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Resources.ResourceManager/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "System.Runtime.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.Handles/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "System.Runtime.Numerics/4.3.0": { - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Cng/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Security.Cryptography.Csp/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - } - }, - "System.Text.Encoding/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - } - }, - "System.Text.Encodings.Web/8.0.0": {}, - "System.Text.RegularExpressions/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0" - } - }, - "System.Threading/4.3.0": { - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Channels/8.0.0": {}, - "System.Threading.RateLimiting/8.0.0": {}, - "System.Threading.Tasks/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - } - }, - "System.Threading.Timer/4.3.0": { - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - } - }, - "System.Xml.XDocument/4.3.0": { - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - } - }, - "xunit/2.5.3": { - "dependencies": { - "xunit.analyzers": "1.4.0", - "xunit.assert": "2.5.3", - "xunit.core": "2.5.3" - } - }, - "xunit.abstractions/2.0.3": { - "runtime": { - "lib/netstandard2.0/xunit.abstractions.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.0.0.0" - } - } - }, - "xunit.analyzers/1.4.0": {}, - "xunit.assert/2.5.3": { - "dependencies": { - "NETStandard.Library": "1.6.1" - }, - "runtime": { - "lib/netstandard1.1/xunit.assert.dll": { - "assemblyVersion": "2.5.3.0", - "fileVersion": "2.5.3.0" - } - } - }, - "xunit.core/2.5.3": { - "dependencies": { - "xunit.extensibility.core": "2.5.3", - "xunit.extensibility.execution": "2.5.3" - } - }, - "xunit.extensibility.core/2.5.3": { - "dependencies": { - "NETStandard.Library": "1.6.1", - "xunit.abstractions": "2.0.3" - }, - "runtime": { - "lib/netstandard1.1/xunit.core.dll": { - "assemblyVersion": "2.5.3.0", - "fileVersion": "2.5.3.0" - } - } - }, - "xunit.extensibility.execution/2.5.3": { - "dependencies": { - "NETStandard.Library": "1.6.1", - "xunit.extensibility.core": "2.5.3" - }, - "runtime": { - "lib/netstandard1.1/xunit.execution.dotnet.dll": { - "assemblyVersion": "2.5.3.0", - "fileVersion": "2.5.3.0" - } - } - }, - "xunit.runner.visualstudio/2.5.3": {}, - "IM_API/1.0.0": { - "dependencies": { - "AutoMapper": "12.0.1", - "AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.0", - "MassTransit.RabbitMQ": "8.5.5", - "Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.21", - "Microsoft.AspNetCore.SignalR": "1.2.0", - "Microsoft.Extensions.Caching.StackExchangeRedis": "10.0.2", - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.22.1", - "Newtonsoft.Json": "13.0.4", - "Pomelo.EntityFrameworkCore.MySql": "8.0.3", - "RedLock.net": "2.3.2", - "StackExchange.Redis": "2.9.32", - "Swashbuckle.AspNetCore": "6.6.2", - "System.IdentityModel.Tokens.Jwt": "8.14.0" - }, - "runtime": { - "IM_API.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "1.0.0.0" - } - } - } - } - }, - "libraries": { - "IMTest/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "AutoMapper/12.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hvV62vl6Hp/WfQ24yzo3Co9+OPl8wH8hApwVtgWpiAynVJkUcs7xvehnSftawL8Pe8FrPffBRM3hwzLQqWDNjA==", - "path": "automapper/12.0.1", - "hashPath": "automapper.12.0.1.nupkg.sha512" - }, - "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XCJ4E3oKrbRl1qY9Mr+7uyC0xZj1+bqQjmQRWTiTKiVuuXTny+7YFWHi20tPjwkMukLbicN6yGlDy5PZ4wyi1w==", - "path": "automapper.extensions.microsoft.dependencyinjection/12.0.0", - "hashPath": "automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512" - }, - "Castle.Core/5.1.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", - "path": "castle.core/5.1.1", - "hashPath": "castle.core.5.1.1.nupkg.sha512" - }, - "coverlet.collector/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-tW3lsNS+dAEII6YGUX/VMoJjBS1QvsxqJeqLaJXub08y1FSjasFPtQ4UBUsudE9PNrzLjooClMsPtY2cZLdXpQ==", - "path": "coverlet.collector/6.0.0", - "hashPath": "coverlet.collector.6.0.0.nupkg.sha512" - }, - "MassTransit/8.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bSg8k5q+rP1s+dIGXLLbctqDGdIkfDjdxwNWtCUH7xNCN9ZuM7mqSPQPIFgaYIi34e81m4FqAqo4CAHuWPkhRA==", - "path": "masstransit/8.5.5", - "hashPath": "masstransit.8.5.5.nupkg.sha512" - }, - "MassTransit.Abstractions/8.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0mn2Ay17dD6z5tgSLjbVRlldSbL9iowzFEfVgVfBXVG5ttz9dSWeR4TrdD6pqH93GWXp4CvSmF8i1HqxLX7DZw==", - "path": "masstransit.abstractions/8.5.5", - "hashPath": "masstransit.abstractions.8.5.5.nupkg.sha512" - }, - "MassTransit.RabbitMQ/8.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UxWn4o90YVMF9PBkJeoskOFPneh6YtnI1fLJHtvZiSAG0eoiRrWPGa+6FQCvjkQ/ljCKfjzok2eGZc/vmNZ01A==", - "path": "masstransit.rabbitmq/8.5.5", - "hashPath": "masstransit.rabbitmq.8.5.5.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ve6uvLwKNRkfnO/QeN9M8eUJ49lCnWv/6/9p6iTEuiI6Rtsz+myaBAjdMzLuTViQY032xbTF5AdZF5BJzJJyXQ==", - "path": "microsoft.aspnetcore.authentication.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZuUpJ4DvmVArmTlyGGg+b9IdKgd8Kw0SmEzhjy4dQw8R6rxfNqCXfGvGm3ld7xlrgthJFou/le9tadsSyjFLuw==", - "path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.21", - "hashPath": "microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authorization/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-2/aBgLqBXva/+w8pzRNY8ET43Gi+dr1gv/7ySfbsh23lTK6IAgID5MGUEa1hreNIF+0XpW4tX7QwVe70+YvaPg==", - "path": "microsoft.aspnetcore.authorization/2.3.0", - "hashPath": "microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vn31uQ1dA1MIV2WNNDOOOm88V5KgR9esfi0LyQ6eVaGq2h0Yw+R29f5A6qUNJt+RccS3qkYayylAy9tP1wV+7Q==", - "path": "microsoft.aspnetcore.authorization.policy/2.3.0", - "hashPath": "microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ULFSa+/L+WiAHVlIFHyg0OmHChU9Hx+K+xnt0hbIU5XmT1EGy0pNDx23QAzDtAy9jxQrTG6MX0MdvMeU4D4c7w==", - "path": "microsoft.aspnetcore.connections.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==", - "path": "microsoft.aspnetcore.hosting.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==", - "path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==", - "path": "microsoft.aspnetcore.http/2.3.0", - "hashPath": "microsoft.aspnetcore.http.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==", - "path": "microsoft.aspnetcore.http.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VYMCOLvdT0y3O9lk4jUuIs8+re7u5+i+ka6ZZ6fIzSJ94c/JeMnAOOg39EB2i4crPXvLoiSdzKWlNPJgTbCZ2g==", - "path": "microsoft.aspnetcore.http.connections/1.2.0", - "hashPath": "microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yUA7eg6kv7Wbz5TCW4PqS5/kYE5VxUIEDvoxjw4p1RwS2LGm84F9fBtM0mD6wrRfiv1NUyJ7WBjn3PWd/ccO+w==", - "path": "microsoft.aspnetcore.http.connections.common/1.2.0", - "hashPath": "microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Extensions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==", - "path": "microsoft.aspnetcore.http.extensions/2.3.0", - "hashPath": "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Features/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==", - "path": "microsoft.aspnetcore.http.features/2.3.0", - "hashPath": "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Routing/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-no5/VC0CAQuT4PK4rp2K5fqwuSfzr2mdB6m1XNfWVhHnwzpRQzKAu9flChiT/JTLKwVI0Vq2MSmSW2OFMDCNXg==", - "path": "microsoft.aspnetcore.routing/2.3.0", - "hashPath": "microsoft.aspnetcore.routing.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZkFpUrSmp6TocxZLBEX3IBv5dPMbQuMs6L/BPl0WRfn32UVOtNYJQ0bLdh3cL9LMV0rmTW/5R0w8CBYxr0AOUw==", - "path": "microsoft.aspnetcore.routing.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XoCcsOTdtBiXyOzUtpbCl0IaqMOYjnr+6dbDxvUCFn7NR6bu7CwrlQ3oQzkltTwDZH0b6VEUN9wZPOYvPHi+Lg==", - "path": "microsoft.aspnetcore.signalr/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Common/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FZeXIaoWqe145ZPdfiptwkw/sP1BX1UD0706GNBwwoaFiKsNbLEl/Trhj2+idlp3qbX1BEwkQesKNxkopVY5Xg==", - "path": "microsoft.aspnetcore.signalr.common/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Core/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eZTuMkSDw1uwjhLhJbMxgW2Cuyxfn0Kfqm8OBmqvuzE9Qc/VVzh8dGrAp2F9Pk7XKTDHmlhc5RTLcPPAZ5PSZw==", - "path": "microsoft.aspnetcore.signalr.core/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hNvZ7kQxp5Udqd/IFWViU35bUJvi4xnNzjkF28HRvrdrS7JNsIASTvMqArP6HLQUc3j6nlUOeShNhVmgI1wzHg==", - "path": "microsoft.aspnetcore.signalr.protocols.json/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.WebSockets/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+T4zpnVPkIjvvkyhTH3WBJlTfqmTBRozvnMudAUDvcb4e+NrWf52q8BXh52rkCrBgX6Cudf6F/UhZwTowyBtKg==", - "path": "microsoft.aspnetcore.websockets/2.3.0", - "hashPath": "microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.WebUtilities/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==", - "path": "microsoft.aspnetcore.webutilities/2.3.0", - "hashPath": "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512" - }, - "Microsoft.Bcl.AsyncInterfaces/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==", - "path": "microsoft.bcl.asyncinterfaces/1.1.0", - "hashPath": "microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512" - }, - "Microsoft.CodeCoverage/17.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==", - "path": "microsoft.codecoverage/17.8.0", - "hashPath": "microsoft.codecoverage.17.8.0.nupkg.sha512" - }, - "Microsoft.CSharp/4.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", - "path": "microsoft.csharp/4.7.0", - "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore/8.0.22": { - "type": "package", - "serviceable": true, - "sha512": "sha512-nKGrD/WOO1d7qtXvghFAHre5Fk3ubw41pDFM0hbFxVIkMFxl4B0ug2LylMHOq+dgAceUeo3bx0qMh6/Jl9NbrA==", - "path": "microsoft.entityframeworkcore/8.0.22", - "hashPath": "microsoft.entityframeworkcore.8.0.22.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { - "type": "package", - "serviceable": true, - "sha512": "sha512-p4Fw9mpJnZHmkdOGCbBqbvuyj1LnnFxNon8snMKIQ0MGSB+j9f6ffWDfvGRaOS/9ikqQG9RMOTzZk52q1G23ng==", - "path": "microsoft.entityframeworkcore.abstractions/8.0.22", - "hashPath": "microsoft.entityframeworkcore.abstractions.8.0.22.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lrSWwr+X+Fn5XGOwOYFQJWx+u+eameqhMjQ1mohXUE2N7LauucZAtcH/j+yXwQntosKoXU1TOoggTL/zmYqbHQ==", - "path": "microsoft.entityframeworkcore.analyzers/8.0.22", - "hashPath": "microsoft.entityframeworkcore.analyzers.8.0.22.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { - "type": "package", - "serviceable": true, - "sha512": "sha512-dPbM/KLIh/AdHRjh/OhrzhAiHRLT0JBC5KSvAZ71eg42+QwF9aEuBfTzqr+GJE6DK9CLhqh9jXAqRKFojPki5g==", - "path": "microsoft.entityframeworkcore.inmemory/8.0.22", - "hashPath": "microsoft.entityframeworkcore.inmemory.8.0.22.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Relational/8.0.13": { - "type": "package", - "serviceable": true, - "sha512": "sha512-uQR2iTar+6ZEjEHTwgH0/7ySSRme4R9sDiupfG3w/eBub3365fPw/MjhsuOMQkdq9YzLM7veH4Qt/K9OqL26Qg==", - "path": "microsoft.entityframeworkcore.relational/8.0.13", - "hashPath": "microsoft.entityframeworkcore.relational.8.0.13.nupkg.sha512" - }, - "Microsoft.Extensions.ApiDescription.Server/6.0.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==", - "path": "microsoft.extensions.apidescription.server/6.0.5", - "hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.Abstractions/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WIRPDa/qoKHmJhTAPCO/zLu9kRLQ2Fd6HD5tzgdXJ3xGEVXDHP6FvakKJjynwKrVDld8H4G4tcbW53wuC/wxMQ==", - "path": "microsoft.extensions.caching.abstractions/10.0.2", - "hashPath": "microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.Memory/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", - "path": "microsoft.extensions.caching.memory/8.0.1", - "hashPath": "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WEx0VM6KVv4Bf6lwe4WQTd4EixIfw38ZU3u/7zMe+uC5fOyiANu8Os/qyiqv2iEsIJb296tbd2E2BTaWIha3Vg==", - "path": "microsoft.extensions.caching.stackexchangeredis/10.0.2", - "hashPath": "microsoft.extensions.caching.stackexchangeredis.10.0.2.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.DependencyInjection/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", - "path": "microsoft.extensions.dependencyinjection/8.0.1", - "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zOIurr59+kUf9vNcsUkCvKWZv+fPosUZXURZesYkJCvl0EzTc9F7maAO4Cd2WEV7ZJJ0AZrFQvuH6Npph9wdBw==", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.2", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", - "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", - "hashPath": "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-P9SoBuVZhJPpALZmSq72aQEb9ryP67EdquaCZGXGrrcASTNHYdrUhnpgSwIipgM5oVC+dKpRXg5zxobmF9xr5g==", - "path": "microsoft.extensions.diagnostics.healthchecks/8.0.0", - "hashPath": "microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AT2qqos3IgI09ok36Qag9T8bb6kHJ3uT9Q5ki6CySybFsK6/9JbvQAgAHf1pVEjST0/N4JaFaCbm40R5edffwg==", - "path": "microsoft.extensions.diagnostics.healthchecks.abstractions/8.0.0", - "hashPath": "microsoft.extensions.diagnostics.healthchecks.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.Hosting.Abstractions/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", - "path": "microsoft.extensions.hosting.abstractions/8.0.1", - "hashPath": "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", - "path": "microsoft.extensions.logging/8.0.1", - "hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RZkez/JjpnO+MZ6efKkSynN6ZztLpw3WbxNzjLCPBd97wWj1S9ZYPWi0nmT4kWBRa6atHsdM1ydGkUr8GudyDQ==", - "path": "microsoft.extensions.logging.abstractions/10.0.2", - "hashPath": "microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.ObjectPool/8.0.11": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==", - "path": "microsoft.extensions.objectpool/8.0.11", - "hashPath": "microsoft.extensions.objectpool.8.0.11.nupkg.sha512" - }, - "Microsoft.Extensions.Options/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1De2LJjmxdqopI5AYC5dIhoZQ79AR5ayywxNF1rXrXFtKQfbQOV9+n/IsZBa7qWlr0MqoGpW8+OY2v/57udZOA==", - "path": "microsoft.extensions.options/10.0.2", - "hashPath": "microsoft.extensions.options.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-QmSiO+oLBEooGgB3i0GRXyeYRDHjllqt3k365jwfZlYWhvSHA3UL2NEVV5m8aZa041eIlblo6KMI5txvTMpTwA==", - "path": "microsoft.extensions.primitives/10.0.2", - "hashPath": "microsoft.extensions.primitives.10.0.2.nupkg.sha512" - }, - "Microsoft.IdentityModel.Abstractions/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", - "path": "microsoft.identitymodel.abstractions/8.14.0", - "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", - "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", - "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Logging/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", - "path": "microsoft.identitymodel.logging/8.14.0", - "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Protocols/7.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", - "path": "microsoft.identitymodel.protocols/7.1.2", - "hashPath": "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512" - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", - "path": "microsoft.identitymodel.protocols.openidconnect/7.1.2", - "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512" - }, - "Microsoft.IdentityModel.Tokens/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", - "path": "microsoft.identitymodel.tokens/8.14.0", - "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" - }, - "Microsoft.Net.Http.Headers/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==", - "path": "microsoft.net.http.headers/2.3.0", - "hashPath": "microsoft.net.http.headers.2.3.0.nupkg.sha512" - }, - "Microsoft.NET.Test.Sdk/17.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==", - "path": "microsoft.net.test.sdk/17.8.0", - "hashPath": "microsoft.net.test.sdk.17.8.0.nupkg.sha512" - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", - "path": "microsoft.netcore.platforms/1.1.0", - "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", - "path": "microsoft.netcore.targets/1.1.0", - "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" - }, - "Microsoft.OpenApi/1.6.14": { - "type": "package", - "serviceable": true, - "sha512": "sha512-tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==", - "path": "microsoft.openapi/1.6.14", - "hashPath": "microsoft.openapi.1.6.14.nupkg.sha512" - }, - "Microsoft.TestPlatform.ObjectModel/17.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==", - "path": "microsoft.testplatform.objectmodel/17.8.0", - "hashPath": "microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512" - }, - "Microsoft.TestPlatform.TestHost/17.8.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==", - "path": "microsoft.testplatform.testhost/17.8.0", - "hashPath": "microsoft.testplatform.testhost.17.8.0.nupkg.sha512" - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==", - "path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1", - "hashPath": "microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512" - }, - "Microsoft.Win32.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "path": "microsoft.win32.primitives/4.3.0", - "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" - }, - "Moq/4.20.72": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", - "path": "moq/4.20.72", - "hashPath": "moq.4.20.72.nupkg.sha512" - }, - "MySqlConnector/2.3.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", - "path": "mysqlconnector/2.3.5", - "hashPath": "mysqlconnector.2.3.5.nupkg.sha512" - }, - "NETStandard.Library/1.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", - "path": "netstandard.library/1.6.1", - "hashPath": "netstandard.library.1.6.1.nupkg.sha512" - }, - "Newtonsoft.Json/13.0.4": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==", - "path": "newtonsoft.json/13.0.4", - "hashPath": "newtonsoft.json.13.0.4.nupkg.sha512" - }, - "NuGet.Frameworks/6.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==", - "path": "nuget.frameworks/6.5.0", - "hashPath": "nuget.frameworks.6.5.0.nupkg.sha512" - }, - "Pipelines.Sockets.Unofficial/2.2.8": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", - "path": "pipelines.sockets.unofficial/2.2.8", - "hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512" - }, - "Pomelo.EntityFrameworkCore.MySql/8.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gOHP6v/nFp5V/FgHqv9mZocGqCLGofihEX9dTbLhiXX3H7SJHmGX70GIPUpiqLT+1jIfDxg1PZh9MTUKuk7Kig==", - "path": "pomelo.entityframeworkcore.mysql/8.0.3", - "hashPath": "pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512" - }, - "RabbitMQ.Client/7.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-y3c6ulgULScWthHw5PLM1ShHRLhxg0vCtzX/hh61gRgNecL3ZC3WoBW2HYHoXOVRqTl99Br9E7CZEytGZEsCyQ==", - "path": "rabbitmq.client/7.1.2", - "hashPath": "rabbitmq.client.7.1.2.nupkg.sha512" - }, - "RedLock.net/2.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-jlrALAArm4dCE292U3EtRoMnVKJ9M6sunbZn/oG5OuzlGtTpusXBfvDrnGWbgGDlWV027f5E9H5CiVnPxiq8+g==", - "path": "redlock.net/2.3.2", - "hashPath": "redlock.net.2.3.2.nupkg.sha512" - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.native.System/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "path": "runtime.native.system/4.3.0", - "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" - }, - "runtime.native.System.IO.Compression/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", - "path": "runtime.native.system.io.compression/4.3.0", - "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", - "path": "runtime.native.system.net.http/4.3.0", - "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", - "path": "runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "StackExchange.Redis/2.9.32": { - "type": "package", - "serviceable": true, - "sha512": "sha512-j5Rjbf7gWz5izrn0UWQy9RlQY4cQDPkwJfVqATnVsOa/+zzJrps12LOgacMsDl/Vit2f01cDiDkG/Rst8v2iGw==", - "path": "stackexchange.redis/2.9.32", - "hashPath": "stackexchange.redis.2.9.32.nupkg.sha512" - }, - "Swashbuckle.AspNetCore/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==", - "path": "swashbuckle.aspnetcore/6.6.2", - "hashPath": "swashbuckle.aspnetcore.6.6.2.nupkg.sha512" - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==", - "path": "swashbuckle.aspnetcore.swagger/6.6.2", - "hashPath": "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512" - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==", - "path": "swashbuckle.aspnetcore.swaggergen/6.6.2", - "hashPath": "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512" - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==", - "path": "swashbuckle.aspnetcore.swaggerui/6.6.2", - "hashPath": "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512" - }, - "System.AppContext/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", - "path": "system.appcontext/4.3.0", - "hashPath": "system.appcontext.4.3.0.nupkg.sha512" - }, - "System.Buffers/4.6.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==", - "path": "system.buffers/4.6.0", - "hashPath": "system.buffers.4.6.0.nupkg.sha512" - }, - "System.Collections/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "path": "system.collections/4.3.0", - "hashPath": "system.collections.4.3.0.nupkg.sha512" - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", - "path": "system.collections.concurrent/4.3.0", - "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" - }, - "System.Console/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", - "path": "system.console/4.3.0", - "hashPath": "system.console.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "path": "system.diagnostics.debug/4.3.0", - "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lYWBy8fKkJHaRcOuw30d67PrtVjR5754sz5Wl76s8P+vJ9FSThh9b7LIcTSODx1LY7NB3Srvg+JMnzd67qNZOw==", - "path": "system.diagnostics.diagnosticsource/10.0.2", - "hashPath": "system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512" - }, - "System.Diagnostics.EventLog/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==", - "path": "system.diagnostics.eventlog/6.0.0", - "hashPath": "system.diagnostics.eventlog.6.0.0.nupkg.sha512" - }, - "System.Diagnostics.Tools/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", - "path": "system.diagnostics.tools/4.3.0", - "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", - "path": "system.diagnostics.tracing/4.3.0", - "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" - }, - "System.Globalization/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "path": "system.globalization/4.3.0", - "hashPath": "system.globalization.4.3.0.nupkg.sha512" - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", - "path": "system.globalization.calendars/4.3.0", - "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", - "path": "system.globalization.extensions/4.3.0", - "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" - }, - "System.IdentityModel.Tokens.Jwt/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EYGgN/S+HK7S6F3GaaPLFAfK0UzMrkXFyWCvXpQWFYmZln3dqtbyIO7VuTM/iIIPMzkelg8ZLlBPvMhxj6nOAA==", - "path": "system.identitymodel.tokens.jwt/8.14.0", - "hashPath": "system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512" - }, - "System.IO/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "path": "system.io/4.3.0", - "hashPath": "system.io.4.3.0.nupkg.sha512" - }, - "System.IO.Compression/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", - "path": "system.io.compression/4.3.0", - "hashPath": "system.io.compression.4.3.0.nupkg.sha512" - }, - "System.IO.Compression.ZipFile/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", - "path": "system.io.compression.zipfile/4.3.0", - "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", - "path": "system.io.filesystem/4.3.0", - "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", - "path": "system.io.filesystem.primitives/4.3.0", - "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" - }, - "System.IO.Pipelines/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", - "path": "system.io.pipelines/8.0.0", - "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" - }, - "System.Linq/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", - "path": "system.linq/4.3.0", - "hashPath": "system.linq.4.3.0.nupkg.sha512" - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", - "path": "system.linq.expressions/4.3.0", - "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" - }, - "System.Net.Http/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", - "path": "system.net.http/4.3.0", - "hashPath": "system.net.http.4.3.0.nupkg.sha512" - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", - "path": "system.net.primitives/4.3.0", - "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" - }, - "System.Net.Sockets/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", - "path": "system.net.sockets/4.3.0", - "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" - }, - "System.Net.WebSockets.WebSocketProtocol/5.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cVTT/Zw4JuUeX8H0tdWii0OMHsA5MY2PaFYOq/Hstw0jk479jZ+f8baCicWFNzJlCPWAe0uoNCELoB5eNmaMqA==", - "path": "system.net.websockets.websocketprotocol/5.1.0", - "hashPath": "system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512" - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", - "path": "system.objectmodel/4.3.0", - "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" - }, - "System.Reflection/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "path": "system.reflection/4.3.0", - "hashPath": "system.reflection.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", - "path": "system.reflection.emit/4.7.0", - "hashPath": "system.reflection.emit.4.7.0.nupkg.sha512" - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", - "path": "system.reflection.emit.lightweight/4.3.0", - "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "path": "system.reflection.extensions/4.3.0", - "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" - }, - "System.Reflection.Metadata/1.6.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", - "path": "system.reflection.metadata/1.6.0", - "hashPath": "system.reflection.metadata.1.6.0.nupkg.sha512" - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "path": "system.reflection.primitives/4.3.0", - "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "path": "system.reflection.typeextensions/4.3.0", - "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", - "path": "system.resources.resourcemanager/4.3.0", - "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" - }, - "System.Runtime/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "path": "system.runtime/4.3.0", - "hashPath": "system.runtime.4.3.0.nupkg.sha512" - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "path": "system.runtime.extensions/4.3.0", - "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", - "path": "system.runtime.handles/4.3.0", - "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "path": "system.runtime.interopservices/4.3.0", - "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", - "path": "system.runtime.interopservices.runtimeinformation/4.3.0", - "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", - "path": "system.runtime.numerics/4.3.0", - "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "path": "system.security.cryptography.algorithms/4.3.0", - "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Cng/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", - "path": "system.security.cryptography.cng/4.3.0", - "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", - "path": "system.security.cryptography.csp/4.3.0", - "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", - "path": "system.security.cryptography.encoding/4.3.0", - "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", - "path": "system.security.cryptography.openssl/4.3.0", - "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", - "path": "system.security.cryptography.primitives/4.3.0", - "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "path": "system.security.cryptography.x509certificates/4.3.0", - "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "path": "system.text.encoding/4.3.0", - "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", - "path": "system.text.encoding.extensions/4.3.0", - "hashPath": "system.text.encoding.extensions.4.3.0.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.RegularExpressions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", - "path": "system.text.regularexpressions/4.3.0", - "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" - }, - "System.Threading/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "path": "system.threading/4.3.0", - "hashPath": "system.threading.4.3.0.nupkg.sha512" - }, - "System.Threading.Channels/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", - "path": "system.threading.channels/8.0.0", - "hashPath": "system.threading.channels.8.0.0.nupkg.sha512" - }, - "System.Threading.RateLimiting/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q==", - "path": "system.threading.ratelimiting/8.0.0", - "hashPath": "system.threading.ratelimiting.8.0.0.nupkg.sha512" - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "path": "system.threading.tasks/4.3.0", - "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", - "path": "system.threading.tasks.extensions/4.3.0", - "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" - }, - "System.Threading.Timer/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", - "path": "system.threading.timer/4.3.0", - "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", - "path": "system.xml.readerwriter/4.3.0", - "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" - }, - "System.Xml.XDocument/4.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", - "path": "system.xml.xdocument/4.3.0", - "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" - }, - "xunit/2.5.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VxYDiWSwrLxOJ3UEN+ZPrBybB0SFShQ1E6PjT65VdoKCJhorgerFznThjSwawRH/WAip73YnucDVsE8WRj/8KQ==", - "path": "xunit/2.5.3", - "hashPath": "xunit.2.5.3.nupkg.sha512" - }, - "xunit.abstractions/2.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", - "path": "xunit.abstractions/2.0.3", - "hashPath": "xunit.abstractions.2.0.3.nupkg.sha512" - }, - "xunit.analyzers/1.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7ljnTJfFjz5zK+Jf0h2dd2QOSO6UmFizXsojv/x4QX7TU5vEgtKZPk9RvpkiuUqg2bddtNZufBoKQalsi7djfA==", - "path": "xunit.analyzers/1.4.0", - "hashPath": "xunit.analyzers.1.4.0.nupkg.sha512" - }, - "xunit.assert/2.5.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MK3HiBckO3vdxEdUxXZyyRPsBNPsC/nz6y1gj/UZIZkjMnsVQyZPU8yxS/3cjTchYcqskt/nqUOS5wmD8JezdQ==", - "path": "xunit.assert/2.5.3", - "hashPath": "xunit.assert.2.5.3.nupkg.sha512" - }, - "xunit.core/2.5.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FE8yEEUkoMLd6kOHDXm/QYfX/dYzwc0c+Q4MQon6VGRwFuy6UVGwK/CFA5LEea+ZBEmcco7AEl2q78VjsA0j/w==", - "path": "xunit.core/2.5.3", - "hashPath": "xunit.core.2.5.3.nupkg.sha512" - }, - "xunit.extensibility.core/2.5.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IjAQlPeZWXP89pl1EuOG9991GH1qgAL0rQfkmX2UV+PDenbYb7oBnQopL9ujE6YaXxgaQazp7lFjsDyyxD6Mtw==", - "path": "xunit.extensibility.core/2.5.3", - "hashPath": "xunit.extensibility.core.2.5.3.nupkg.sha512" - }, - "xunit.extensibility.execution/2.5.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-w9eGCHl+gJj1GzZSf0VTzYPp/gv4fiUDkr+yR7/Wv9/ucO2CHltGg2TnyySLFjzekkjuxVJZUE+tZyDNzryJFw==", - "path": "xunit.extensibility.execution/2.5.3", - "hashPath": "xunit.extensibility.execution.2.5.3.nupkg.sha512" - }, - "xunit.runner.visualstudio/2.5.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HFFL6O+QLEOfs555SqHii48ovVa4CqGYanY+B32BjLpPptdE+wEJmCFNXlLHdEOD5LYeayb9EroaUpydGpcybg==", - "path": "xunit.runner.visualstudio/2.5.3", - "hashPath": "xunit.runner.visualstudio.2.5.3.nupkg.sha512" - }, - "IM_API/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - } - } +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "IMTest/1.0.0": { + "dependencies": { + "IM_API": "1.0.0", + "Microsoft.EntityFrameworkCore.InMemory": "8.0.22", + "Microsoft.NET.Test.Sdk": "17.8.0", + "Moq": "4.20.72", + "coverlet.collector": "6.0.0", + "xunit": "2.5.3", + "xunit.runner.visualstudio": "2.5.3" + }, + "runtime": { + "IMTest.dll": {} + } + }, + "AutoMapper/12.0.1": { + "dependencies": { + "Microsoft.CSharp": "4.7.0" + }, + "runtime": { + "lib/netstandard2.1/AutoMapper.dll": { + "assemblyVersion": "12.0.0.0", + "fileVersion": "12.0.1.0" + } + } + }, + "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { + "dependencies": { + "AutoMapper": "12.0.1", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": { + "assemblyVersion": "12.0.0.0", + "fileVersion": "12.0.0.0" + } + } + }, + "Castle.Core/5.1.1": { + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + }, + "runtime": { + "lib/net6.0/Castle.Core.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.1.1.0" + } + } + }, + "coverlet.collector/6.0.0": {}, + "MassTransit/8.5.5": { + "dependencies": { + "MassTransit.Abstractions": "8.5.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/net8.0/MassTransit.dll": { + "assemblyVersion": "8.5.5.0", + "fileVersion": "8.5.5.0" + } + } + }, + "MassTransit.Abstractions/8.5.5": { + "runtime": { + "lib/net8.0/MassTransit.Abstractions.dll": { + "assemblyVersion": "8.5.5.0", + "fileVersion": "8.5.5.0" + } + } + }, + "MassTransit.RabbitMQ/8.5.5": { + "dependencies": { + "MassTransit": "8.5.5", + "RabbitMQ.Client": "7.1.2" + }, + "runtime": { + "lib/net8.0/MassTransit.RabbitMqTransport.dll": { + "assemblyVersion": "8.5.5.0", + "fileVersion": "8.5.5.0" + } + } + }, + "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { + "assemblyVersion": "8.0.21.0", + "fileVersion": "8.0.2125.47515" + } + } + }, + "Microsoft.AspNetCore.Authorization/2.3.0": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Authentication.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Authorization": "2.3.0" + } + }, + "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1" + } + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + } + }, + "Microsoft.AspNetCore.Http/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.AspNetCore.WebUtilities": "2.3.0", + "Microsoft.Extensions.ObjectPool": "8.0.11", + "Microsoft.Extensions.Options": "10.0.2", + "Microsoft.Net.Http.Headers": "2.3.0" + } + }, + "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "System.Text.Encodings.Web": "8.0.0" + } + }, + "Microsoft.AspNetCore.Http.Connections/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Authorization.Policy": "2.3.0", + "Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Http": "2.3.0", + "Microsoft.AspNetCore.Http.Connections.Common": "1.2.0", + "Microsoft.AspNetCore.Routing": "2.3.0", + "Microsoft.AspNetCore.WebSockets": "2.3.0", + "Newtonsoft.Json": "13.0.4", + "System.Net.WebSockets.WebSocketProtocol": "5.1.0" + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", + "Newtonsoft.Json": "13.0.4", + "System.Buffers": "4.6.0", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.Http.Extensions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Net.Http.Headers": "2.3.0", + "System.Buffers": "4.6.0" + } + }, + "Microsoft.AspNetCore.Http.Features/2.3.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + } + }, + "Microsoft.AspNetCore.Routing/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Extensions": "2.3.0", + "Microsoft.AspNetCore.Routing.Abstractions": "2.3.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.ObjectPool": "8.0.11", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0" + } + }, + "Microsoft.AspNetCore.SignalR/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections": "1.2.0", + "Microsoft.AspNetCore.SignalR.Core": "1.2.0", + "Microsoft.AspNetCore.WebSockets": "2.3.0", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.SignalR.Common/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", + "Microsoft.Extensions.Options": "10.0.2", + "Newtonsoft.Json": "13.0.4", + "System.Buffers": "4.6.0" + } + }, + "Microsoft.AspNetCore.SignalR.Core/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Authorization": "2.3.0", + "Microsoft.AspNetCore.SignalR.Common": "1.2.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "1.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "System.IO.Pipelines": "8.0.0", + "System.Reflection.Emit": "4.7.0", + "System.Threading.Channels": "8.0.0" + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "1.2.0", + "Newtonsoft.Json": "13.0.4", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.WebSockets/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Extensions": "2.3.0", + "Microsoft.Extensions.Options": "10.0.2", + "System.Net.WebSockets.WebSocketProtocol": "5.1.0" + } + }, + "Microsoft.AspNetCore.WebUtilities/2.3.0": { + "dependencies": { + "Microsoft.Net.Http.Headers": "2.3.0", + "System.Text.Encodings.Web": "8.0.0" + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.19.56404" + } + } + }, + "Microsoft.CodeCoverage/17.8.0": { + "runtime": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.623.45702" + } + } + }, + "Microsoft.CSharp/4.7.0": {}, + "Microsoft.EntityFrameworkCore/8.0.22": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.22", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.22", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "assemblyVersion": "8.0.22.0", + "fileVersion": "8.0.2225.52804" + } + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "assemblyVersion": "8.0.22.0", + "fileVersion": "8.0.2225.52804" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": {}, + "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.22" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll": { + "assemblyVersion": "8.0.22.0", + "fileVersion": "8.0.2225.52804" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.13": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.22", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "assemblyVersion": "8.0.13.0", + "fileVersion": "8.0.1325.6604" + } + } + }, + "Microsoft.Extensions.ApiDescription.Server/6.0.5": {}, + "Microsoft.Extensions.Caching.Abstractions/10.0.2": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "10.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2", + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "10.0.2", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2", + "StackExchange.Redis": "2.9.32" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { + "assemblyVersion": "10.0.2.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": {}, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + } + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "System.Diagnostics.DiagnosticSource": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.ObjectPool/8.0.11": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1124.52116" + } + } + }, + "Microsoft.Extensions.Options/10.0.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.Primitives/10.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.1.2": { + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "assemblyVersion": "7.1.2.0", + "fileVersion": "7.1.2.41121" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "assemblyVersion": "7.1.2.0", + "fileVersion": "7.1.2.41121" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.IdentityModel.Logging": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.Net.Http.Headers/2.3.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2", + "System.Buffers": "4.6.0" + } + }, + "Microsoft.NET.Test.Sdk/17.8.0": { + "dependencies": { + "Microsoft.CodeCoverage": "17.8.0", + "Microsoft.TestPlatform.TestHost": "17.8.0" + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "Microsoft.NETCore.Targets/1.1.0": {}, + "Microsoft.OpenApi/1.6.14": { + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "assemblyVersion": "1.6.14.0", + "fileVersion": "1.6.14.0" + } + } + }, + "Microsoft.TestPlatform.ObjectModel/17.8.0": { + "dependencies": { + "NuGet.Frameworks": "6.5.0", + "System.Reflection.Metadata": "1.6.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + }, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + }, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.8.0": { + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.8.0", + "Newtonsoft.Json": "13.0.4" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + }, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + }, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + }, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + }, + "lib/netcoreapp3.1/testhost.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "17.800.23.55801" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": {}, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "Moq/4.20.72": { + "dependencies": { + "Castle.Core": "5.1.1" + }, + "runtime": { + "lib/net6.0/Moq.dll": { + "assemblyVersion": "4.20.72.0", + "fileVersion": "4.20.72.0" + } + } + }, + "MySqlConnector/2.3.5": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2" + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.5.0" + } + } + }, + "NETStandard.Library/1.6.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.Win32.Primitives": "4.3.0", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Console": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.Compression.ZipFile": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Net.Http": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Net.Sockets": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Timer": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0" + } + }, + "Newtonsoft.Json/13.0.4": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.4.30916" + } + } + }, + "NuGet.Frameworks/6.5.0": { + "runtime": { + "lib/netstandard2.0/NuGet.Frameworks.dll": { + "assemblyVersion": "6.5.0.154", + "fileVersion": "6.5.0.154" + } + } + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "runtime": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "2.2.8.1080" + } + } + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.3": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "8.0.13", + "MySqlConnector": "2.3.5" + }, + "runtime": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "assemblyVersion": "8.0.3.0", + "fileVersion": "8.0.3.0" + } + } + }, + "RabbitMQ.Client/7.1.2": { + "dependencies": { + "System.IO.Pipelines": "8.0.0", + "System.Threading.RateLimiting": "8.0.0" + }, + "runtime": { + "lib/net8.0/RabbitMQ.Client.dll": { + "assemblyVersion": "7.0.0.0", + "fileVersion": "7.1.2.0" + } + } + }, + "RedLock.net/2.3.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.0", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "StackExchange.Redis": "2.9.32" + }, + "runtime": { + "lib/netstandard2.0/RedLockNet.Abstractions.dll": { + "assemblyVersion": "2.3.2.0", + "fileVersion": "2.3.2.0" + }, + "lib/netstandard2.0/RedLockNet.SERedis.dll": { + "assemblyVersion": "2.3.2.0", + "fileVersion": "2.3.2.0" + } + } + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "StackExchange.Redis/2.9.32": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Pipelines.Sockets.Unofficial": "2.2.8" + }, + "runtime": { + "lib/net8.0/StackExchange.Redis.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.9.32.54708" + } + } + }, + "Swashbuckle.AspNetCore/6.6.2": { + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "6.0.5", + "Swashbuckle.AspNetCore.Swagger": "6.6.2", + "Swashbuckle.AspNetCore.SwaggerGen": "6.6.2", + "Swashbuckle.AspNetCore.SwaggerUI": "6.6.2" + } + }, + "Swashbuckle.AspNetCore.Swagger/6.6.2": { + "dependencies": { + "Microsoft.OpenApi": "1.6.14" + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "assemblyVersion": "6.6.2.0", + "fileVersion": "6.6.2.401" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "6.6.2" + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "assemblyVersion": "6.6.2.0", + "fileVersion": "6.6.2.401" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "assemblyVersion": "6.6.2.0", + "fileVersion": "6.6.2.401" + } + } + }, + "System.AppContext/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Buffers/4.6.0": {}, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Console/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/10.0.2": { + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "System.Diagnostics.EventLog/6.0.0": {}, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IdentityModel.Tokens.Jwt/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Buffers": "4.6.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + } + }, + "System.IO.Compression.ZipFile/4.3.0": { + "dependencies": { + "System.Buffers": "4.6.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.IO.Pipelines/8.0.0": {}, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.7.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "10.0.2", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Net.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Net.Sockets/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Net.WebSockets.WebSocketProtocol/5.1.0": { + "runtime": { + "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { + "assemblyVersion": "5.1.0.0", + "fileVersion": "5.100.24.56208" + } + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.7.0": {}, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Metadata/1.6.0": {}, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web/8.0.0": {}, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Channels/8.0.0": {}, + "System.Threading.RateLimiting/8.0.0": {}, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Timer/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "xunit/2.5.3": { + "dependencies": { + "xunit.analyzers": "1.4.0", + "xunit.assert": "2.5.3", + "xunit.core": "2.5.3" + } + }, + "xunit.abstractions/2.0.3": { + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.0.0.0" + } + } + }, + "xunit.analyzers/1.4.0": {}, + "xunit.assert/2.5.3": { + "dependencies": { + "NETStandard.Library": "1.6.1" + }, + "runtime": { + "lib/netstandard1.1/xunit.assert.dll": { + "assemblyVersion": "2.5.3.0", + "fileVersion": "2.5.3.0" + } + } + }, + "xunit.core/2.5.3": { + "dependencies": { + "xunit.extensibility.core": "2.5.3", + "xunit.extensibility.execution": "2.5.3" + } + }, + "xunit.extensibility.core/2.5.3": { + "dependencies": { + "NETStandard.Library": "1.6.1", + "xunit.abstractions": "2.0.3" + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "assemblyVersion": "2.5.3.0", + "fileVersion": "2.5.3.0" + } + } + }, + "xunit.extensibility.execution/2.5.3": { + "dependencies": { + "NETStandard.Library": "1.6.1", + "xunit.extensibility.core": "2.5.3" + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "assemblyVersion": "2.5.3.0", + "fileVersion": "2.5.3.0" + } + } + }, + "xunit.runner.visualstudio/2.5.3": {}, + "IM_API/1.0.0": { + "dependencies": { + "AutoMapper": "12.0.1", + "AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.0", + "MassTransit.RabbitMQ": "8.5.5", + "Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.21", + "Microsoft.AspNetCore.SignalR": "1.2.0", + "Microsoft.Extensions.Caching.StackExchangeRedis": "10.0.2", + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.22.1", + "Newtonsoft.Json": "13.0.4", + "Pomelo.EntityFrameworkCore.MySql": "8.0.3", + "RedLock.net": "2.3.2", + "StackExchange.Redis": "2.9.32", + "Swashbuckle.AspNetCore": "6.6.2", + "System.IdentityModel.Tokens.Jwt": "8.14.0" + }, + "runtime": { + "IM_API.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "IMTest/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AutoMapper/12.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hvV62vl6Hp/WfQ24yzo3Co9+OPl8wH8hApwVtgWpiAynVJkUcs7xvehnSftawL8Pe8FrPffBRM3hwzLQqWDNjA==", + "path": "automapper/12.0.1", + "hashPath": "automapper.12.0.1.nupkg.sha512" + }, + "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XCJ4E3oKrbRl1qY9Mr+7uyC0xZj1+bqQjmQRWTiTKiVuuXTny+7YFWHi20tPjwkMukLbicN6yGlDy5PZ4wyi1w==", + "path": "automapper.extensions.microsoft.dependencyinjection/12.0.0", + "hashPath": "automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512" + }, + "Castle.Core/5.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "path": "castle.core/5.1.1", + "hashPath": "castle.core.5.1.1.nupkg.sha512" + }, + "coverlet.collector/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tW3lsNS+dAEII6YGUX/VMoJjBS1QvsxqJeqLaJXub08y1FSjasFPtQ4UBUsudE9PNrzLjooClMsPtY2cZLdXpQ==", + "path": "coverlet.collector/6.0.0", + "hashPath": "coverlet.collector.6.0.0.nupkg.sha512" + }, + "MassTransit/8.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bSg8k5q+rP1s+dIGXLLbctqDGdIkfDjdxwNWtCUH7xNCN9ZuM7mqSPQPIFgaYIi34e81m4FqAqo4CAHuWPkhRA==", + "path": "masstransit/8.5.5", + "hashPath": "masstransit.8.5.5.nupkg.sha512" + }, + "MassTransit.Abstractions/8.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0mn2Ay17dD6z5tgSLjbVRlldSbL9iowzFEfVgVfBXVG5ttz9dSWeR4TrdD6pqH93GWXp4CvSmF8i1HqxLX7DZw==", + "path": "masstransit.abstractions/8.5.5", + "hashPath": "masstransit.abstractions.8.5.5.nupkg.sha512" + }, + "MassTransit.RabbitMQ/8.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UxWn4o90YVMF9PBkJeoskOFPneh6YtnI1fLJHtvZiSAG0eoiRrWPGa+6FQCvjkQ/ljCKfjzok2eGZc/vmNZ01A==", + "path": "masstransit.rabbitmq/8.5.5", + "hashPath": "masstransit.rabbitmq.8.5.5.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ve6uvLwKNRkfnO/QeN9M8eUJ49lCnWv/6/9p6iTEuiI6Rtsz+myaBAjdMzLuTViQY032xbTF5AdZF5BJzJJyXQ==", + "path": "microsoft.aspnetcore.authentication.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZuUpJ4DvmVArmTlyGGg+b9IdKgd8Kw0SmEzhjy4dQw8R6rxfNqCXfGvGm3ld7xlrgthJFou/le9tadsSyjFLuw==", + "path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.21", + "hashPath": "microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authorization/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2/aBgLqBXva/+w8pzRNY8ET43Gi+dr1gv/7ySfbsh23lTK6IAgID5MGUEa1hreNIF+0XpW4tX7QwVe70+YvaPg==", + "path": "microsoft.aspnetcore.authorization/2.3.0", + "hashPath": "microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vn31uQ1dA1MIV2WNNDOOOm88V5KgR9esfi0LyQ6eVaGq2h0Yw+R29f5A6qUNJt+RccS3qkYayylAy9tP1wV+7Q==", + "path": "microsoft.aspnetcore.authorization.policy/2.3.0", + "hashPath": "microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ULFSa+/L+WiAHVlIFHyg0OmHChU9Hx+K+xnt0hbIU5XmT1EGy0pNDx23QAzDtAy9jxQrTG6MX0MdvMeU4D4c7w==", + "path": "microsoft.aspnetcore.connections.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==", + "path": "microsoft.aspnetcore.hosting.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==", + "path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==", + "path": "microsoft.aspnetcore.http/2.3.0", + "hashPath": "microsoft.aspnetcore.http.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==", + "path": "microsoft.aspnetcore.http.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VYMCOLvdT0y3O9lk4jUuIs8+re7u5+i+ka6ZZ6fIzSJ94c/JeMnAOOg39EB2i4crPXvLoiSdzKWlNPJgTbCZ2g==", + "path": "microsoft.aspnetcore.http.connections/1.2.0", + "hashPath": "microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yUA7eg6kv7Wbz5TCW4PqS5/kYE5VxUIEDvoxjw4p1RwS2LGm84F9fBtM0mD6wrRfiv1NUyJ7WBjn3PWd/ccO+w==", + "path": "microsoft.aspnetcore.http.connections.common/1.2.0", + "hashPath": "microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Extensions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==", + "path": "microsoft.aspnetcore.http.extensions/2.3.0", + "hashPath": "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Features/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==", + "path": "microsoft.aspnetcore.http.features/2.3.0", + "hashPath": "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Routing/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-no5/VC0CAQuT4PK4rp2K5fqwuSfzr2mdB6m1XNfWVhHnwzpRQzKAu9flChiT/JTLKwVI0Vq2MSmSW2OFMDCNXg==", + "path": "microsoft.aspnetcore.routing/2.3.0", + "hashPath": "microsoft.aspnetcore.routing.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZkFpUrSmp6TocxZLBEX3IBv5dPMbQuMs6L/BPl0WRfn32UVOtNYJQ0bLdh3cL9LMV0rmTW/5R0w8CBYxr0AOUw==", + "path": "microsoft.aspnetcore.routing.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XoCcsOTdtBiXyOzUtpbCl0IaqMOYjnr+6dbDxvUCFn7NR6bu7CwrlQ3oQzkltTwDZH0b6VEUN9wZPOYvPHi+Lg==", + "path": "microsoft.aspnetcore.signalr/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Common/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FZeXIaoWqe145ZPdfiptwkw/sP1BX1UD0706GNBwwoaFiKsNbLEl/Trhj2+idlp3qbX1BEwkQesKNxkopVY5Xg==", + "path": "microsoft.aspnetcore.signalr.common/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Core/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eZTuMkSDw1uwjhLhJbMxgW2Cuyxfn0Kfqm8OBmqvuzE9Qc/VVzh8dGrAp2F9Pk7XKTDHmlhc5RTLcPPAZ5PSZw==", + "path": "microsoft.aspnetcore.signalr.core/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hNvZ7kQxp5Udqd/IFWViU35bUJvi4xnNzjkF28HRvrdrS7JNsIASTvMqArP6HLQUc3j6nlUOeShNhVmgI1wzHg==", + "path": "microsoft.aspnetcore.signalr.protocols.json/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.WebSockets/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+T4zpnVPkIjvvkyhTH3WBJlTfqmTBRozvnMudAUDvcb4e+NrWf52q8BXh52rkCrBgX6Cudf6F/UhZwTowyBtKg==", + "path": "microsoft.aspnetcore.websockets/2.3.0", + "hashPath": "microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.WebUtilities/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==", + "path": "microsoft.aspnetcore.webutilities/2.3.0", + "hashPath": "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==", + "path": "microsoft.bcl.asyncinterfaces/1.1.0", + "hashPath": "microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512" + }, + "Microsoft.CodeCoverage/17.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==", + "path": "microsoft.codecoverage/17.8.0", + "hashPath": "microsoft.codecoverage.17.8.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", + "path": "microsoft.csharp/4.7.0", + "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore/8.0.22": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nKGrD/WOO1d7qtXvghFAHre5Fk3ubw41pDFM0hbFxVIkMFxl4B0ug2LylMHOq+dgAceUeo3bx0qMh6/Jl9NbrA==", + "path": "microsoft.entityframeworkcore/8.0.22", + "hashPath": "microsoft.entityframeworkcore.8.0.22.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { + "type": "package", + "serviceable": true, + "sha512": "sha512-p4Fw9mpJnZHmkdOGCbBqbvuyj1LnnFxNon8snMKIQ0MGSB+j9f6ffWDfvGRaOS/9ikqQG9RMOTzZk52q1G23ng==", + "path": "microsoft.entityframeworkcore.abstractions/8.0.22", + "hashPath": "microsoft.entityframeworkcore.abstractions.8.0.22.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lrSWwr+X+Fn5XGOwOYFQJWx+u+eameqhMjQ1mohXUE2N7LauucZAtcH/j+yXwQntosKoXU1TOoggTL/zmYqbHQ==", + "path": "microsoft.entityframeworkcore.analyzers/8.0.22", + "hashPath": "microsoft.entityframeworkcore.analyzers.8.0.22.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dPbM/KLIh/AdHRjh/OhrzhAiHRLT0JBC5KSvAZ71eg42+QwF9aEuBfTzqr+GJE6DK9CLhqh9jXAqRKFojPki5g==", + "path": "microsoft.entityframeworkcore.inmemory/8.0.22", + "hashPath": "microsoft.entityframeworkcore.inmemory.8.0.22.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.13": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uQR2iTar+6ZEjEHTwgH0/7ySSRme4R9sDiupfG3w/eBub3365fPw/MjhsuOMQkdq9YzLM7veH4Qt/K9OqL26Qg==", + "path": "microsoft.entityframeworkcore.relational/8.0.13", + "hashPath": "microsoft.entityframeworkcore.relational.8.0.13.nupkg.sha512" + }, + "Microsoft.Extensions.ApiDescription.Server/6.0.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==", + "path": "microsoft.extensions.apidescription.server/6.0.5", + "hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.Abstractions/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WIRPDa/qoKHmJhTAPCO/zLu9kRLQ2Fd6HD5tzgdXJ3xGEVXDHP6FvakKJjynwKrVDld8H4G4tcbW53wuC/wxMQ==", + "path": "microsoft.extensions.caching.abstractions/10.0.2", + "hashPath": "microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "path": "microsoft.extensions.caching.memory/8.0.1", + "hashPath": "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WEx0VM6KVv4Bf6lwe4WQTd4EixIfw38ZU3u/7zMe+uC5fOyiANu8Os/qyiqv2iEsIJb296tbd2E2BTaWIha3Vg==", + "path": "microsoft.extensions.caching.stackexchangeredis/10.0.2", + "hashPath": "microsoft.extensions.caching.stackexchangeredis.10.0.2.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.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zOIurr59+kUf9vNcsUkCvKWZv+fPosUZXURZesYkJCvl0EzTc9F7maAO4Cd2WEV7ZJJ0AZrFQvuH6Npph9wdBw==", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", + "hashPath": "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P9SoBuVZhJPpALZmSq72aQEb9ryP67EdquaCZGXGrrcASTNHYdrUhnpgSwIipgM5oVC+dKpRXg5zxobmF9xr5g==", + "path": "microsoft.extensions.diagnostics.healthchecks/8.0.0", + "hashPath": "microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AT2qqos3IgI09ok36Qag9T8bb6kHJ3uT9Q5ki6CySybFsK6/9JbvQAgAHf1pVEjST0/N4JaFaCbm40R5edffwg==", + "path": "microsoft.extensions.diagnostics.healthchecks.abstractions/8.0.0", + "hashPath": "microsoft.extensions.diagnostics.healthchecks.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.Hosting.Abstractions/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", + "path": "microsoft.extensions.hosting.abstractions/8.0.1", + "hashPath": "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "path": "microsoft.extensions.logging/8.0.1", + "hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RZkez/JjpnO+MZ6efKkSynN6ZztLpw3WbxNzjLCPBd97wWj1S9ZYPWi0nmT4kWBRa6atHsdM1ydGkUr8GudyDQ==", + "path": "microsoft.extensions.logging.abstractions/10.0.2", + "hashPath": "microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.ObjectPool/8.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==", + "path": "microsoft.extensions.objectpool/8.0.11", + "hashPath": "microsoft.extensions.objectpool.8.0.11.nupkg.sha512" + }, + "Microsoft.Extensions.Options/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1De2LJjmxdqopI5AYC5dIhoZQ79AR5ayywxNF1rXrXFtKQfbQOV9+n/IsZBa7qWlr0MqoGpW8+OY2v/57udZOA==", + "path": "microsoft.extensions.options/10.0.2", + "hashPath": "microsoft.extensions.options.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QmSiO+oLBEooGgB3i0GRXyeYRDHjllqt3k365jwfZlYWhvSHA3UL2NEVV5m8aZa041eIlblo6KMI5txvTMpTwA==", + "path": "microsoft.extensions.primitives/10.0.2", + "hashPath": "microsoft.extensions.primitives.10.0.2.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", + "path": "microsoft.identitymodel.abstractions/8.14.0", + "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", + "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", + "path": "microsoft.identitymodel.logging/8.14.0", + "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols/7.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", + "path": "microsoft.identitymodel.protocols/7.1.2", + "hashPath": "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", + "path": "microsoft.identitymodel.protocols.openidconnect/7.1.2", + "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", + "path": "microsoft.identitymodel.tokens/8.14.0", + "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" + }, + "Microsoft.Net.Http.Headers/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==", + "path": "microsoft.net.http.headers/2.3.0", + "hashPath": "microsoft.net.http.headers.2.3.0.nupkg.sha512" + }, + "Microsoft.NET.Test.Sdk/17.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==", + "path": "microsoft.net.test.sdk/17.8.0", + "hashPath": "microsoft.net.test.sdk.17.8.0.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", + "path": "microsoft.netcore.targets/1.1.0", + "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512" + }, + "Microsoft.OpenApi/1.6.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==", + "path": "microsoft.openapi/1.6.14", + "hashPath": "microsoft.openapi.1.6.14.nupkg.sha512" + }, + "Microsoft.TestPlatform.ObjectModel/17.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==", + "path": "microsoft.testplatform.objectmodel/17.8.0", + "hashPath": "microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512" + }, + "Microsoft.TestPlatform.TestHost/17.8.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==", + "path": "microsoft.testplatform.testhost/17.8.0", + "hashPath": "microsoft.testplatform.testhost.17.8.0.nupkg.sha512" + }, + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==", + "path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1", + "hashPath": "microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Moq/4.20.72": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "path": "moq/4.20.72", + "hashPath": "moq.4.20.72.nupkg.sha512" + }, + "MySqlConnector/2.3.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", + "path": "mysqlconnector/2.3.5", + "hashPath": "mysqlconnector.2.3.5.nupkg.sha512" + }, + "NETStandard.Library/1.6.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", + "path": "netstandard.library/1.6.1", + "hashPath": "netstandard.library.1.6.1.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==", + "path": "newtonsoft.json/13.0.4", + "hashPath": "newtonsoft.json.13.0.4.nupkg.sha512" + }, + "NuGet.Frameworks/6.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==", + "path": "nuget.frameworks/6.5.0", + "hashPath": "nuget.frameworks.6.5.0.nupkg.sha512" + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", + "path": "pipelines.sockets.unofficial/2.2.8", + "hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512" + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gOHP6v/nFp5V/FgHqv9mZocGqCLGofihEX9dTbLhiXX3H7SJHmGX70GIPUpiqLT+1jIfDxg1PZh9MTUKuk7Kig==", + "path": "pomelo.entityframeworkcore.mysql/8.0.3", + "hashPath": "pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512" + }, + "RabbitMQ.Client/7.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y3c6ulgULScWthHw5PLM1ShHRLhxg0vCtzX/hh61gRgNecL3ZC3WoBW2HYHoXOVRqTl99Br9E7CZEytGZEsCyQ==", + "path": "rabbitmq.client/7.1.2", + "hashPath": "rabbitmq.client.7.1.2.nupkg.sha512" + }, + "RedLock.net/2.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jlrALAArm4dCE292U3EtRoMnVKJ9M6sunbZn/oG5OuzlGtTpusXBfvDrnGWbgGDlWV027f5E9H5CiVnPxiq8+g==", + "path": "redlock.net/2.3.2", + "hashPath": "redlock.net.2.3.2.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "path": "runtime.native.system.io.compression/4.3.0", + "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "StackExchange.Redis/2.9.32": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j5Rjbf7gWz5izrn0UWQy9RlQY4cQDPkwJfVqATnVsOa/+zzJrps12LOgacMsDl/Vit2f01cDiDkG/Rst8v2iGw==", + "path": "stackexchange.redis/2.9.32", + "hashPath": "stackexchange.redis.2.9.32.nupkg.sha512" + }, + "Swashbuckle.AspNetCore/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==", + "path": "swashbuckle.aspnetcore/6.6.2", + "hashPath": "swashbuckle.aspnetcore.6.6.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.Swagger/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==", + "path": "swashbuckle.aspnetcore.swagger/6.6.2", + "hashPath": "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==", + "path": "swashbuckle.aspnetcore.swaggergen/6.6.2", + "hashPath": "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==", + "path": "swashbuckle.aspnetcore.swaggerui/6.6.2", + "hashPath": "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512" + }, + "System.AppContext/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", + "path": "system.appcontext/4.3.0", + "hashPath": "system.appcontext.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==", + "path": "system.buffers/4.6.0", + "hashPath": "system.buffers.4.6.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Console/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", + "path": "system.console/4.3.0", + "hashPath": "system.console.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lYWBy8fKkJHaRcOuw30d67PrtVjR5754sz5Wl76s8P+vJ9FSThh9b7LIcTSODx1LY7NB3Srvg+JMnzd67qNZOw==", + "path": "system.diagnostics.diagnosticsource/10.0.2", + "hashPath": "system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512" + }, + "System.Diagnostics.EventLog/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==", + "path": "system.diagnostics.eventlog/6.0.0", + "hashPath": "system.diagnostics.eventlog.6.0.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EYGgN/S+HK7S6F3GaaPLFAfK0UzMrkXFyWCvXpQWFYmZln3dqtbyIO7VuTM/iIIPMzkelg8ZLlBPvMhxj6nOAA==", + "path": "system.identitymodel.tokens.jwt/8.14.0", + "hashPath": "system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "path": "system.io.compression/4.3.0", + "hashPath": "system.io.compression.4.3.0.nupkg.sha512" + }, + "System.IO.Compression.ZipFile/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", + "path": "system.io.compression.zipfile/4.3.0", + "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "path": "system.io.pipelines/8.0.0", + "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", + "path": "system.net.http/4.3.0", + "hashPath": "system.net.http.4.3.0.nupkg.sha512" + }, + "System.Net.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "path": "system.net.primitives/4.3.0", + "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" + }, + "System.Net.Sockets/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", + "path": "system.net.sockets/4.3.0", + "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" + }, + "System.Net.WebSockets.WebSocketProtocol/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cVTT/Zw4JuUeX8H0tdWii0OMHsA5MY2PaFYOq/Hstw0jk479jZ+f8baCicWFNzJlCPWAe0uoNCELoB5eNmaMqA==", + "path": "system.net.websockets.websocketprotocol/5.1.0", + "hashPath": "system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", + "path": "system.reflection.emit/4.7.0", + "hashPath": "system.reflection.emit.4.7.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Metadata/1.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", + "path": "system.reflection.metadata/1.6.0", + "hashPath": "system.reflection.metadata.1.6.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", + "path": "system.runtime.interopservices.runtimeinformation/4.3.0", + "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.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.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Channels/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", + "path": "system.threading.channels/8.0.0", + "hashPath": "system.threading.channels.8.0.0.nupkg.sha512" + }, + "System.Threading.RateLimiting/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q==", + "path": "system.threading.ratelimiting/8.0.0", + "hashPath": "system.threading.ratelimiting.8.0.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "path": "system.threading.tasks.extensions/4.3.0", + "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" + }, + "System.Threading.Timer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", + "path": "system.threading.timer/4.3.0", + "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, + "xunit/2.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VxYDiWSwrLxOJ3UEN+ZPrBybB0SFShQ1E6PjT65VdoKCJhorgerFznThjSwawRH/WAip73YnucDVsE8WRj/8KQ==", + "path": "xunit/2.5.3", + "hashPath": "xunit.2.5.3.nupkg.sha512" + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "path": "xunit.abstractions/2.0.3", + "hashPath": "xunit.abstractions.2.0.3.nupkg.sha512" + }, + "xunit.analyzers/1.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7ljnTJfFjz5zK+Jf0h2dd2QOSO6UmFizXsojv/x4QX7TU5vEgtKZPk9RvpkiuUqg2bddtNZufBoKQalsi7djfA==", + "path": "xunit.analyzers/1.4.0", + "hashPath": "xunit.analyzers.1.4.0.nupkg.sha512" + }, + "xunit.assert/2.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MK3HiBckO3vdxEdUxXZyyRPsBNPsC/nz6y1gj/UZIZkjMnsVQyZPU8yxS/3cjTchYcqskt/nqUOS5wmD8JezdQ==", + "path": "xunit.assert/2.5.3", + "hashPath": "xunit.assert.2.5.3.nupkg.sha512" + }, + "xunit.core/2.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FE8yEEUkoMLd6kOHDXm/QYfX/dYzwc0c+Q4MQon6VGRwFuy6UVGwK/CFA5LEea+ZBEmcco7AEl2q78VjsA0j/w==", + "path": "xunit.core/2.5.3", + "hashPath": "xunit.core.2.5.3.nupkg.sha512" + }, + "xunit.extensibility.core/2.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IjAQlPeZWXP89pl1EuOG9991GH1qgAL0rQfkmX2UV+PDenbYb7oBnQopL9ujE6YaXxgaQazp7lFjsDyyxD6Mtw==", + "path": "xunit.extensibility.core/2.5.3", + "hashPath": "xunit.extensibility.core.2.5.3.nupkg.sha512" + }, + "xunit.extensibility.execution/2.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w9eGCHl+gJj1GzZSf0VTzYPp/gv4fiUDkr+yR7/Wv9/ucO2CHltGg2TnyySLFjzekkjuxVJZUE+tZyDNzryJFw==", + "path": "xunit.extensibility.execution/2.5.3", + "hashPath": "xunit.extensibility.execution.2.5.3.nupkg.sha512" + }, + "xunit.runner.visualstudio/2.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HFFL6O+QLEOfs555SqHii48ovVa4CqGYanY+B32BjLpPptdE+wEJmCFNXlLHdEOD5LYeayb9EroaUpydGpcybg==", + "path": "xunit.runner.visualstudio/2.5.3", + "hashPath": "xunit.runner.visualstudio.2.5.3.nupkg.sha512" + }, + "IM_API/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } } \ No newline at end of file diff --git a/backend/IMTest/bin/Debug/net8.0/IMTest.dll b/backend/IMTest/bin/Debug/net8.0/IMTest.dll index a0cda451d694d4817c2e18d6b5bc96d87896a846..1b81499223a53415631995671a2f195b2d02497b 100644 GIT binary patch delta 248 zcmZp8!PM}AX+j6fk|6ej8+%kH3NX9AemTcZ+jZtt@y>;!^KWcEFj1dh&)hsE$;coj z+1MgA$->gi!ZbP2+&Cr8Bqhbj+|(j5(bPCG(Ja*d({zB!=4hs`FS$_WA ze_-;GRRID&6YHjT3uO4V-&s_5-B`+0VYKPf>BtEPBid#Hw;mm`Z z%UAa@`Wz}vzFj1dhFD2P5H95`5 z$Rs7rB-O&)(8SQ(Fx4W-G{wj`F)cCC(jdt=(J;-zkb%L6k->d({zB!=4hs`FS<3%* zbx&ThDnOvS`^eXXic*I@5r+1nH@gcbv#btQfC=(J1%ax$_XhB3oL%hb)Anha^XBr^ zz0Ce849N^;45>gejll>AO&C&uEEAxJ1%o+*A&_MVra}B922-G{5rZ*9B2Y~t5Lz-A T07XH3L!gKSgW=}j^=nxG4c<}4 diff --git a/backend/IMTest/bin/Debug/net8.0/IMTest.pdb b/backend/IMTest/bin/Debug/net8.0/IMTest.pdb index f9575cb588d2903cee52a899df39729d98feb674..a5be6bbae4308fcb3168f5adf72d56530f868217 100644 GIT binary patch delta 148 zcmV;F0Biru{sGMX0g!wY`C)#Six6l{huorm*G(hG`Tf7Zv5>YCAR!F^%uiXfFBszu zIU`D!%K_a7zVfj&@*uJO#~#*F&a-9|TLCF;bMurWBZHJ=V~f-z3rjN#)8s^RYCAYMfV>jWZLcv CdO-^S diff --git a/backend/IMTest/bin/Debug/net8.0/IMTest.runtimeconfig.json b/backend/IMTest/bin/Debug/net8.0/IMTest.runtimeconfig.json index a42fa34..1698852 100644 --- a/backend/IMTest/bin/Debug/net8.0/IMTest.runtimeconfig.json +++ b/backend/IMTest/bin/Debug/net8.0/IMTest.runtimeconfig.json @@ -1,19 +1,19 @@ -{ - "runtimeOptions": { - "tfm": "net8.0", - "frameworks": [ - { - "name": "Microsoft.NETCore.App", - "version": "8.0.0" - }, - { - "name": "Microsoft.AspNetCore.App", - "version": "8.0.0" - } - ], - "configProperties": { - "System.Reflection.NullabilityInfoContext.IsSupported": true, - "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false - } - } +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.AspNetCore.App", + "version": "8.0.0" + } + ], + "configProperties": { + "System.Reflection.NullabilityInfoContext.IsSupported": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } } \ No newline at end of file diff --git a/backend/IMTest/bin/Debug/net8.0/IM_API.deps.json b/backend/IMTest/bin/Debug/net8.0/IM_API.deps.json index 5086600..7a882c9 100644 --- a/backend/IMTest/bin/Debug/net8.0/IM_API.deps.json +++ b/backend/IMTest/bin/Debug/net8.0/IM_API.deps.json @@ -1,1743 +1,1743 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": { - "IM_API/1.0.0": { - "dependencies": { - "AutoMapper": "12.0.1", - "AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.0", - "MassTransit.RabbitMQ": "8.5.5", - "Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.21", - "Microsoft.AspNetCore.SignalR": "1.2.0", - "Microsoft.EntityFrameworkCore.Design": "8.0.21", - "Microsoft.EntityFrameworkCore.Tools": "8.0.21", - "Microsoft.Extensions.Caching.StackExchangeRedis": "10.0.2", - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.22.1", - "Newtonsoft.Json": "13.0.4", - "Pomelo.EntityFrameworkCore.MySql": "8.0.3", - "RedLock.net": "2.3.2", - "StackExchange.Redis": "2.9.32", - "Swashbuckle.AspNetCore": "6.6.2", - "System.IdentityModel.Tokens.Jwt": "8.14.0" - }, - "runtime": { - "IM_API.dll": {} - } - }, - "AutoMapper/12.0.1": { - "dependencies": { - "Microsoft.CSharp": "4.7.0" - }, - "runtime": { - "lib/netstandard2.1/AutoMapper.dll": { - "assemblyVersion": "12.0.0.0", - "fileVersion": "12.0.1.0" - } - } - }, - "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { - "dependencies": { - "AutoMapper": "12.0.1", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": { - "assemblyVersion": "12.0.0.0", - "fileVersion": "12.0.0.0" - } - } - }, - "Humanizer.Core/2.14.1": { - "runtime": { - "lib/net6.0/Humanizer.dll": { - "assemblyVersion": "2.14.0.0", - "fileVersion": "2.14.1.48190" - } - } - }, - "MassTransit/8.5.5": { - "dependencies": { - "MassTransit.Abstractions": "8.5.5", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/net8.0/MassTransit.dll": { - "assemblyVersion": "8.5.5.0", - "fileVersion": "8.5.5.0" - } - } - }, - "MassTransit.Abstractions/8.5.5": { - "runtime": { - "lib/net8.0/MassTransit.Abstractions.dll": { - "assemblyVersion": "8.5.5.0", - "fileVersion": "8.5.5.0" - } - } - }, - "MassTransit.RabbitMQ/8.5.5": { - "dependencies": { - "MassTransit": "8.5.5", - "RabbitMQ.Client": "7.1.2" - }, - "runtime": { - "lib/net8.0/MassTransit.RabbitMqTransport.dll": { - "assemblyVersion": "8.5.5.0", - "fileVersion": "8.5.5.0" - } - } - }, - "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { - "dependencies": { - "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" - }, - "runtime": { - "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { - "assemblyVersion": "8.0.21.0", - "fileVersion": "8.0.2125.47515" - } - } - }, - "Microsoft.AspNetCore.Authorization/2.3.0": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Authentication.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Authorization": "2.3.0" - } - }, - "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.1" - } - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" - } - }, - "Microsoft.AspNetCore.Http/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.AspNetCore.WebUtilities": "2.3.0", - "Microsoft.Extensions.ObjectPool": "8.0.11", - "Microsoft.Extensions.Options": "10.0.2", - "Microsoft.Net.Http.Headers": "2.3.0" - } - }, - "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "System.Text.Encodings.Web": "8.0.0" - } - }, - "Microsoft.AspNetCore.Http.Connections/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Authorization.Policy": "2.3.0", - "Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Http": "2.3.0", - "Microsoft.AspNetCore.Http.Connections.Common": "1.2.0", - "Microsoft.AspNetCore.Routing": "2.3.0", - "Microsoft.AspNetCore.WebSockets": "2.3.0", - "Newtonsoft.Json": "13.0.4", - "System.Net.WebSockets.WebSocketProtocol": "5.1.0" - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", - "Newtonsoft.Json": "13.0.4", - "System.Buffers": "4.6.0", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.Http.Extensions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Microsoft.Net.Http.Headers": "2.3.0", - "System.Buffers": "4.6.0" - } - }, - "Microsoft.AspNetCore.Http.Features/2.3.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - } - }, - "Microsoft.AspNetCore.Routing/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Extensions": "2.3.0", - "Microsoft.AspNetCore.Routing.Abstractions": "2.3.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.ObjectPool": "8.0.11", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0" - } - }, - "Microsoft.AspNetCore.SignalR/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections": "1.2.0", - "Microsoft.AspNetCore.SignalR.Core": "1.2.0", - "Microsoft.AspNetCore.WebSockets": "2.3.0", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.SignalR.Common/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", - "Microsoft.Extensions.Options": "10.0.2", - "Newtonsoft.Json": "13.0.4", - "System.Buffers": "4.6.0" - } - }, - "Microsoft.AspNetCore.SignalR.Core/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.Authorization": "2.3.0", - "Microsoft.AspNetCore.SignalR.Common": "1.2.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "1.2.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "System.IO.Pipelines": "8.0.0", - "System.Reflection.Emit": "4.7.0", - "System.Threading.Channels": "8.0.0" - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "1.2.0", - "Newtonsoft.Json": "13.0.4", - "System.IO.Pipelines": "8.0.0" - } - }, - "Microsoft.AspNetCore.WebSockets/2.3.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Extensions": "2.3.0", - "Microsoft.Extensions.Options": "10.0.2", - "System.Net.WebSockets.WebSocketProtocol": "5.1.0" - } - }, - "Microsoft.AspNetCore.WebUtilities/2.3.0": { - "dependencies": { - "Microsoft.Net.Http.Headers": "2.3.0", - "System.Text.Encodings.Web": "8.0.0" - } - }, - "Microsoft.Bcl.AsyncInterfaces/6.0.0": { - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "Microsoft.CodeAnalysis.Analyzers/3.3.3": {}, - "Microsoft.CodeAnalysis.Common/4.5.0": { - "dependencies": { - "Microsoft.CodeAnalysis.Analyzers": "3.3.3", - "System.Collections.Immutable": "6.0.0", - "System.Reflection.Metadata": "6.0.1", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encoding.CodePages": "6.0.0" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": { - "assemblyVersion": "4.5.0.0", - "fileVersion": "4.500.23.10905" - } - }, - "resources": { - "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { - "locale": "zh-Hant" - } - } - }, - "Microsoft.CodeAnalysis.CSharp/4.5.0": { - "dependencies": { - "Microsoft.CodeAnalysis.Common": "4.5.0" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": { - "assemblyVersion": "4.5.0.0", - "fileVersion": "4.500.23.10905" - } - }, - "resources": { - "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { - "locale": "zh-Hant" - } - } - }, - "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { - "dependencies": { - "Humanizer.Core": "2.14.1", - "Microsoft.CodeAnalysis.CSharp": "4.5.0", - "Microsoft.CodeAnalysis.Common": "4.5.0", - "Microsoft.CodeAnalysis.Workspaces.Common": "4.5.0" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { - "assemblyVersion": "4.5.0.0", - "fileVersion": "4.500.23.10905" - } - }, - "resources": { - "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { - "locale": "zh-Hant" - } - } - }, - "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { - "dependencies": { - "Humanizer.Core": "2.14.1", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.CodeAnalysis.Common": "4.5.0", - "System.Composition": "6.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Threading.Channels": "8.0.0" - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": { - "assemblyVersion": "4.5.0.0", - "fileVersion": "4.500.23.10905" - } - }, - "resources": { - "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { - "locale": "zh-Hant" - } - } - }, - "Microsoft.CSharp/4.7.0": {}, - "Microsoft.EntityFrameworkCore/8.0.21": { - "dependencies": { - "Microsoft.EntityFrameworkCore.Abstractions": "8.0.21", - "Microsoft.EntityFrameworkCore.Analyzers": "8.0.21", - "Microsoft.Extensions.Caching.Memory": "8.0.1", - "Microsoft.Extensions.Logging": "8.0.1" - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { - "assemblyVersion": "8.0.21.0", - "fileVersion": "8.0.2125.47512" - } - } - }, - "Microsoft.EntityFrameworkCore.Abstractions/8.0.21": { - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { - "assemblyVersion": "8.0.21.0", - "fileVersion": "8.0.2125.47512" - } - } - }, - "Microsoft.EntityFrameworkCore.Analyzers/8.0.21": {}, - "Microsoft.EntityFrameworkCore.Design/8.0.21": { - "dependencies": { - "Humanizer.Core": "2.14.1", - "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.5.0", - "Microsoft.EntityFrameworkCore.Relational": "8.0.21", - "Microsoft.Extensions.DependencyModel": "8.0.2", - "Mono.TextTemplating": "2.2.1" - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll": { - "assemblyVersion": "8.0.21.0", - "fileVersion": "8.0.2125.47512" - } - } - }, - "Microsoft.EntityFrameworkCore.Relational/8.0.21": { - "dependencies": { - "Microsoft.EntityFrameworkCore": "8.0.21", - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { - "assemblyVersion": "8.0.21.0", - "fileVersion": "8.0.2125.47512" - } - } - }, - "Microsoft.EntityFrameworkCore.Tools/8.0.21": { - "dependencies": { - "Microsoft.EntityFrameworkCore.Design": "8.0.21" - } - }, - "Microsoft.Extensions.ApiDescription.Server/6.0.5": {}, - "Microsoft.Extensions.Caching.Abstractions/10.0.2": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.Caching.Memory/8.0.1": { - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "10.0.2", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2", - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "10.0.2", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2", - "StackExchange.Redis": "2.9.32" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { - "assemblyVersion": "10.0.2.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - } - }, - "Microsoft.Extensions.DependencyInjection/8.0.1": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.DependencyModel/8.0.2": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { - "assemblyVersion": "8.0.0.2", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "8.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - } - }, - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": {}, - "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - } - }, - "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Logging/8.0.1": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1024.46610" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.2": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "System.Diagnostics.DiagnosticSource": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.ObjectPool/8.0.11": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1124.52116" - } - } - }, - "Microsoft.Extensions.Options/10.0.2": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.Extensions.Primitives/10.0.2": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "Microsoft.IdentityModel.Abstractions/8.14.0": { - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { - "dependencies": { - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.IdentityModel.Logging/8.14.0": { - "dependencies": { - "Microsoft.IdentityModel.Abstractions": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.IdentityModel.Protocols/7.1.2": { - "dependencies": { - "Microsoft.IdentityModel.Logging": "8.14.0", - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { - "assemblyVersion": "7.1.2.0", - "fileVersion": "7.1.2.41121" - } - } - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { - "dependencies": { - "Microsoft.IdentityModel.Protocols": "7.1.2", - "System.IdentityModel.Tokens.Jwt": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { - "assemblyVersion": "7.1.2.0", - "fileVersion": "7.1.2.41121" - } - } - }, - "Microsoft.IdentityModel.Tokens/8.14.0": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.IdentityModel.Logging": "8.14.0" - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "Microsoft.Net.Http.Headers/2.3.0": { - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2", - "System.Buffers": "4.6.0" - } - }, - "Microsoft.OpenApi/1.6.14": { - "runtime": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "assemblyVersion": "1.6.14.0", - "fileVersion": "1.6.14.0" - } - } - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": {}, - "Mono.TextTemplating/2.2.1": { - "dependencies": { - "System.CodeDom": "4.4.0" - }, - "runtime": { - "lib/netstandard2.0/Mono.TextTemplating.dll": { - "assemblyVersion": "2.2.0.0", - "fileVersion": "2.2.1.1" - } - } - }, - "MySqlConnector/2.3.5": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2" - }, - "runtime": { - "lib/net8.0/MySqlConnector.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.3.5.0" - } - } - }, - "Newtonsoft.Json/13.0.4": { - "runtime": { - "lib/net6.0/Newtonsoft.Json.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.4.30916" - } - } - }, - "Pipelines.Sockets.Unofficial/2.2.8": { - "dependencies": { - "System.IO.Pipelines": "8.0.0" - }, - "runtime": { - "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { - "assemblyVersion": "1.0.0.0", - "fileVersion": "2.2.8.1080" - } - } - }, - "Pomelo.EntityFrameworkCore.MySql/8.0.3": { - "dependencies": { - "Microsoft.EntityFrameworkCore.Relational": "8.0.21", - "MySqlConnector": "2.3.5" - }, - "runtime": { - "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { - "assemblyVersion": "8.0.3.0", - "fileVersion": "8.0.3.0" - } - } - }, - "RabbitMQ.Client/7.1.2": { - "dependencies": { - "System.IO.Pipelines": "8.0.0", - "System.Threading.RateLimiting": "8.0.0" - }, - "runtime": { - "lib/net8.0/RabbitMQ.Client.dll": { - "assemblyVersion": "7.0.0.0", - "fileVersion": "7.1.2.0" - } - } - }, - "RedLock.net/2.3.2": { - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.Logging": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "StackExchange.Redis": "2.9.32" - }, - "runtime": { - "lib/netstandard2.0/RedLockNet.Abstractions.dll": { - "assemblyVersion": "2.3.2.0", - "fileVersion": "2.3.2.0" - }, - "lib/netstandard2.0/RedLockNet.SERedis.dll": { - "assemblyVersion": "2.3.2.0", - "fileVersion": "2.3.2.0" - } - } - }, - "StackExchange.Redis/2.9.32": { - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Pipelines.Sockets.Unofficial": "2.2.8" - }, - "runtime": { - "lib/net8.0/StackExchange.Redis.dll": { - "assemblyVersion": "2.0.0.0", - "fileVersion": "2.9.32.54708" - } - } - }, - "Swashbuckle.AspNetCore/6.6.2": { - "dependencies": { - "Microsoft.Extensions.ApiDescription.Server": "6.0.5", - "Swashbuckle.AspNetCore.Swagger": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerGen": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerUI": "6.6.2" - } - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "dependencies": { - "Microsoft.OpenApi": "1.6.14" - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { - "assemblyVersion": "6.6.2.0", - "fileVersion": "6.6.2.401" - } - } - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "dependencies": { - "Swashbuckle.AspNetCore.Swagger": "6.6.2" - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { - "assemblyVersion": "6.6.2.0", - "fileVersion": "6.6.2.401" - } - } - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { - "assemblyVersion": "6.6.2.0", - "fileVersion": "6.6.2.401" - } - } - }, - "System.Buffers/4.6.0": {}, - "System.CodeDom/4.4.0": { - "runtime": { - "lib/netstandard2.0/System.CodeDom.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "4.6.25519.3" - } - } - }, - "System.Collections.Immutable/6.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Composition/6.0.0": { - "dependencies": { - "System.Composition.AttributedModel": "6.0.0", - "System.Composition.Convention": "6.0.0", - "System.Composition.Hosting": "6.0.0", - "System.Composition.Runtime": "6.0.0", - "System.Composition.TypedParts": "6.0.0" - } - }, - "System.Composition.AttributedModel/6.0.0": { - "runtime": { - "lib/net6.0/System.Composition.AttributedModel.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "System.Composition.Convention/6.0.0": { - "dependencies": { - "System.Composition.AttributedModel": "6.0.0" - }, - "runtime": { - "lib/net6.0/System.Composition.Convention.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "System.Composition.Hosting/6.0.0": { - "dependencies": { - "System.Composition.Runtime": "6.0.0" - }, - "runtime": { - "lib/net6.0/System.Composition.Hosting.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "System.Composition.Runtime/6.0.0": { - "runtime": { - "lib/net6.0/System.Composition.Runtime.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "System.Composition.TypedParts/6.0.0": { - "dependencies": { - "System.Composition.AttributedModel": "6.0.0", - "System.Composition.Hosting": "6.0.0", - "System.Composition.Runtime": "6.0.0" - }, - "runtime": { - "lib/net6.0/System.Composition.TypedParts.dll": { - "assemblyVersion": "6.0.0.0", - "fileVersion": "6.0.21.52210" - } - } - }, - "System.Diagnostics.DiagnosticSource/10.0.2": { - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.225.61305" - } - } - }, - "System.IdentityModel.Tokens.Jwt/8.14.0": { - "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "runtime": { - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { - "assemblyVersion": "8.14.0.0", - "fileVersion": "8.14.0.60815" - } - } - }, - "System.IO.Pipelines/8.0.0": {}, - "System.Net.WebSockets.WebSocketProtocol/5.1.0": { - "runtime": { - "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { - "assemblyVersion": "5.1.0.0", - "fileVersion": "5.100.24.56208" - } - } - }, - "System.Reflection.Emit/4.7.0": {}, - "System.Reflection.Metadata/6.0.1": { - "dependencies": { - "System.Collections.Immutable": "6.0.0" - } - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, - "System.Text.Encoding.CodePages/6.0.0": { - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Encodings.Web/8.0.0": {}, - "System.Threading.Channels/8.0.0": {}, - "System.Threading.RateLimiting/8.0.0": {} - } - }, - "libraries": { - "IM_API/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "AutoMapper/12.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hvV62vl6Hp/WfQ24yzo3Co9+OPl8wH8hApwVtgWpiAynVJkUcs7xvehnSftawL8Pe8FrPffBRM3hwzLQqWDNjA==", - "path": "automapper/12.0.1", - "hashPath": "automapper.12.0.1.nupkg.sha512" - }, - "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XCJ4E3oKrbRl1qY9Mr+7uyC0xZj1+bqQjmQRWTiTKiVuuXTny+7YFWHi20tPjwkMukLbicN6yGlDy5PZ4wyi1w==", - "path": "automapper.extensions.microsoft.dependencyinjection/12.0.0", - "hashPath": "automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512" - }, - "Humanizer.Core/2.14.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", - "path": "humanizer.core/2.14.1", - "hashPath": "humanizer.core.2.14.1.nupkg.sha512" - }, - "MassTransit/8.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bSg8k5q+rP1s+dIGXLLbctqDGdIkfDjdxwNWtCUH7xNCN9ZuM7mqSPQPIFgaYIi34e81m4FqAqo4CAHuWPkhRA==", - "path": "masstransit/8.5.5", - "hashPath": "masstransit.8.5.5.nupkg.sha512" - }, - "MassTransit.Abstractions/8.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0mn2Ay17dD6z5tgSLjbVRlldSbL9iowzFEfVgVfBXVG5ttz9dSWeR4TrdD6pqH93GWXp4CvSmF8i1HqxLX7DZw==", - "path": "masstransit.abstractions/8.5.5", - "hashPath": "masstransit.abstractions.8.5.5.nupkg.sha512" - }, - "MassTransit.RabbitMQ/8.5.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UxWn4o90YVMF9PBkJeoskOFPneh6YtnI1fLJHtvZiSAG0eoiRrWPGa+6FQCvjkQ/ljCKfjzok2eGZc/vmNZ01A==", - "path": "masstransit.rabbitmq/8.5.5", - "hashPath": "masstransit.rabbitmq.8.5.5.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ve6uvLwKNRkfnO/QeN9M8eUJ49lCnWv/6/9p6iTEuiI6Rtsz+myaBAjdMzLuTViQY032xbTF5AdZF5BJzJJyXQ==", - "path": "microsoft.aspnetcore.authentication.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZuUpJ4DvmVArmTlyGGg+b9IdKgd8Kw0SmEzhjy4dQw8R6rxfNqCXfGvGm3ld7xlrgthJFou/le9tadsSyjFLuw==", - "path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.21", - "hashPath": "microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authorization/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-2/aBgLqBXva/+w8pzRNY8ET43Gi+dr1gv/7ySfbsh23lTK6IAgID5MGUEa1hreNIF+0XpW4tX7QwVe70+YvaPg==", - "path": "microsoft.aspnetcore.authorization/2.3.0", - "hashPath": "microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vn31uQ1dA1MIV2WNNDOOOm88V5KgR9esfi0LyQ6eVaGq2h0Yw+R29f5A6qUNJt+RccS3qkYayylAy9tP1wV+7Q==", - "path": "microsoft.aspnetcore.authorization.policy/2.3.0", - "hashPath": "microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ULFSa+/L+WiAHVlIFHyg0OmHChU9Hx+K+xnt0hbIU5XmT1EGy0pNDx23QAzDtAy9jxQrTG6MX0MdvMeU4D4c7w==", - "path": "microsoft.aspnetcore.connections.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==", - "path": "microsoft.aspnetcore.hosting.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==", - "path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==", - "path": "microsoft.aspnetcore.http/2.3.0", - "hashPath": "microsoft.aspnetcore.http.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==", - "path": "microsoft.aspnetcore.http.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VYMCOLvdT0y3O9lk4jUuIs8+re7u5+i+ka6ZZ6fIzSJ94c/JeMnAOOg39EB2i4crPXvLoiSdzKWlNPJgTbCZ2g==", - "path": "microsoft.aspnetcore.http.connections/1.2.0", - "hashPath": "microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yUA7eg6kv7Wbz5TCW4PqS5/kYE5VxUIEDvoxjw4p1RwS2LGm84F9fBtM0mD6wrRfiv1NUyJ7WBjn3PWd/ccO+w==", - "path": "microsoft.aspnetcore.http.connections.common/1.2.0", - "hashPath": "microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Extensions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==", - "path": "microsoft.aspnetcore.http.extensions/2.3.0", - "hashPath": "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Features/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==", - "path": "microsoft.aspnetcore.http.features/2.3.0", - "hashPath": "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Routing/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-no5/VC0CAQuT4PK4rp2K5fqwuSfzr2mdB6m1XNfWVhHnwzpRQzKAu9flChiT/JTLKwVI0Vq2MSmSW2OFMDCNXg==", - "path": "microsoft.aspnetcore.routing/2.3.0", - "hashPath": "microsoft.aspnetcore.routing.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZkFpUrSmp6TocxZLBEX3IBv5dPMbQuMs6L/BPl0WRfn32UVOtNYJQ0bLdh3cL9LMV0rmTW/5R0w8CBYxr0AOUw==", - "path": "microsoft.aspnetcore.routing.abstractions/2.3.0", - "hashPath": "microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XoCcsOTdtBiXyOzUtpbCl0IaqMOYjnr+6dbDxvUCFn7NR6bu7CwrlQ3oQzkltTwDZH0b6VEUN9wZPOYvPHi+Lg==", - "path": "microsoft.aspnetcore.signalr/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Common/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FZeXIaoWqe145ZPdfiptwkw/sP1BX1UD0706GNBwwoaFiKsNbLEl/Trhj2+idlp3qbX1BEwkQesKNxkopVY5Xg==", - "path": "microsoft.aspnetcore.signalr.common/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Core/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eZTuMkSDw1uwjhLhJbMxgW2Cuyxfn0Kfqm8OBmqvuzE9Qc/VVzh8dGrAp2F9Pk7XKTDHmlhc5RTLcPPAZ5PSZw==", - "path": "microsoft.aspnetcore.signalr.core/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hNvZ7kQxp5Udqd/IFWViU35bUJvi4xnNzjkF28HRvrdrS7JNsIASTvMqArP6HLQUc3j6nlUOeShNhVmgI1wzHg==", - "path": "microsoft.aspnetcore.signalr.protocols.json/1.2.0", - "hashPath": "microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.WebSockets/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+T4zpnVPkIjvvkyhTH3WBJlTfqmTBRozvnMudAUDvcb4e+NrWf52q8BXh52rkCrBgX6Cudf6F/UhZwTowyBtKg==", - "path": "microsoft.aspnetcore.websockets/2.3.0", - "hashPath": "microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.WebUtilities/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==", - "path": "microsoft.aspnetcore.webutilities/2.3.0", - "hashPath": "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512" - }, - "Microsoft.Bcl.AsyncInterfaces/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", - "path": "microsoft.bcl.asyncinterfaces/6.0.0", - "hashPath": "microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512" - }, - "Microsoft.CodeAnalysis.Analyzers/3.3.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==", - "path": "microsoft.codeanalysis.analyzers/3.3.3", - "hashPath": "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512" - }, - "Microsoft.CodeAnalysis.Common/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", - "path": "microsoft.codeanalysis.common/4.5.0", - "hashPath": "microsoft.codeanalysis.common.4.5.0.nupkg.sha512" - }, - "Microsoft.CodeAnalysis.CSharp/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", - "path": "microsoft.codeanalysis.csharp/4.5.0", - "hashPath": "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512" - }, - "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", - "path": "microsoft.codeanalysis.csharp.workspaces/4.5.0", - "hashPath": "microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512" - }, - "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", - "path": "microsoft.codeanalysis.workspaces.common/4.5.0", - "hashPath": "microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512" - }, - "Microsoft.CSharp/4.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", - "path": "microsoft.csharp/4.7.0", - "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WgCdRIS+hpq95zJo6oI9tvyQV/0EH9qJiD4FL60m+ghpHqHY6rY3D793HLe64yD85IHwumuX4hNJeHYeJEvM0g==", - "path": "microsoft.entityframeworkcore/8.0.21", - "hashPath": "microsoft.entityframeworkcore.8.0.21.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Abstractions/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1ZEXvRk8Rk+MfW06EmSYg7GQJZdOocJf61nezBmC2Kti0barUART0MHWgNzQox1lIzw9uv3A1HWJUjmPswCO6w==", - "path": "microsoft.entityframeworkcore.abstractions/8.0.21", - "hashPath": "microsoft.entityframeworkcore.abstractions.8.0.21.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Analyzers/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MGX1NkW44ju8yIzfg+ao/YITHyA23EThp8HfuNp5zaqihL+kNORVMUUnewBjakiCq0938bzFKu9HRmZsXS4b2g==", - "path": "microsoft.entityframeworkcore.analyzers/8.0.21", - "hashPath": "microsoft.entityframeworkcore.analyzers.8.0.21.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Design/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-q7EP42PSWPKkyztgsv1EmHAFjreN2fqww77L2Tjhp2dwfEjidgHjtX6yrZBDUbIFva5Y87xAdv9hQoBAUZLryw==", - "path": "microsoft.entityframeworkcore.design/8.0.21", - "hashPath": "microsoft.entityframeworkcore.design.8.0.21.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Relational/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-P1ywvCew/jKhbJApuIk2Sm4Ejq/5FOgEh2IooB48juABzGAlfUjW2kBlbevWO9mNK+sMPS2vnf+US8W0fEo46Q==", - "path": "microsoft.entityframeworkcore.relational/8.0.21", - "hashPath": "microsoft.entityframeworkcore.relational.8.0.21.nupkg.sha512" - }, - "Microsoft.EntityFrameworkCore.Tools/8.0.21": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Jmm3WtUyalpgfHEozcD+q0SmbKwMTVsZCz46ws/YHbePScu3PkNMmhn0iUFvi32djCJBCfOvXtQdnJFyXyW6LA==", - "path": "microsoft.entityframeworkcore.tools/8.0.21", - "hashPath": "microsoft.entityframeworkcore.tools.8.0.21.nupkg.sha512" - }, - "Microsoft.Extensions.ApiDescription.Server/6.0.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==", - "path": "microsoft.extensions.apidescription.server/6.0.5", - "hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.Abstractions/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WIRPDa/qoKHmJhTAPCO/zLu9kRLQ2Fd6HD5tzgdXJ3xGEVXDHP6FvakKJjynwKrVDld8H4G4tcbW53wuC/wxMQ==", - "path": "microsoft.extensions.caching.abstractions/10.0.2", - "hashPath": "microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.Memory/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", - "path": "microsoft.extensions.caching.memory/8.0.1", - "hashPath": "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WEx0VM6KVv4Bf6lwe4WQTd4EixIfw38ZU3u/7zMe+uC5fOyiANu8Os/qyiqv2iEsIJb296tbd2E2BTaWIha3Vg==", - "path": "microsoft.extensions.caching.stackexchangeredis/10.0.2", - "hashPath": "microsoft.extensions.caching.stackexchangeredis.10.0.2.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.DependencyInjection/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", - "path": "microsoft.extensions.dependencyinjection/8.0.1", - "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zOIurr59+kUf9vNcsUkCvKWZv+fPosUZXURZesYkJCvl0EzTc9F7maAO4Cd2WEV7ZJJ0AZrFQvuH6Npph9wdBw==", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.2", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyModel/8.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==", - "path": "microsoft.extensions.dependencymodel/8.0.2", - "hashPath": "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", - "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", - "hashPath": "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-P9SoBuVZhJPpALZmSq72aQEb9ryP67EdquaCZGXGrrcASTNHYdrUhnpgSwIipgM5oVC+dKpRXg5zxobmF9xr5g==", - "path": "microsoft.extensions.diagnostics.healthchecks/8.0.0", - "hashPath": "microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AT2qqos3IgI09ok36Qag9T8bb6kHJ3uT9Q5ki6CySybFsK6/9JbvQAgAHf1pVEjST0/N4JaFaCbm40R5edffwg==", - "path": "microsoft.extensions.diagnostics.healthchecks.abstractions/8.0.0", - "hashPath": "microsoft.extensions.diagnostics.healthchecks.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.Hosting.Abstractions/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", - "path": "microsoft.extensions.hosting.abstractions/8.0.1", - "hashPath": "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/8.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", - "path": "microsoft.extensions.logging/8.0.1", - "hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-RZkez/JjpnO+MZ6efKkSynN6ZztLpw3WbxNzjLCPBd97wWj1S9ZYPWi0nmT4kWBRa6atHsdM1ydGkUr8GudyDQ==", - "path": "microsoft.extensions.logging.abstractions/10.0.2", - "hashPath": "microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.ObjectPool/8.0.11": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==", - "path": "microsoft.extensions.objectpool/8.0.11", - "hashPath": "microsoft.extensions.objectpool.8.0.11.nupkg.sha512" - }, - "Microsoft.Extensions.Options/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1De2LJjmxdqopI5AYC5dIhoZQ79AR5ayywxNF1rXrXFtKQfbQOV9+n/IsZBa7qWlr0MqoGpW8+OY2v/57udZOA==", - "path": "microsoft.extensions.options/10.0.2", - "hashPath": "microsoft.extensions.options.10.0.2.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-QmSiO+oLBEooGgB3i0GRXyeYRDHjllqt3k365jwfZlYWhvSHA3UL2NEVV5m8aZa041eIlblo6KMI5txvTMpTwA==", - "path": "microsoft.extensions.primitives/10.0.2", - "hashPath": "microsoft.extensions.primitives.10.0.2.nupkg.sha512" - }, - "Microsoft.IdentityModel.Abstractions/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", - "path": "microsoft.identitymodel.abstractions/8.14.0", - "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", - "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", - "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Logging/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", - "path": "microsoft.identitymodel.logging/8.14.0", - "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" - }, - "Microsoft.IdentityModel.Protocols/7.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", - "path": "microsoft.identitymodel.protocols/7.1.2", - "hashPath": "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512" - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", - "path": "microsoft.identitymodel.protocols.openidconnect/7.1.2", - "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512" - }, - "Microsoft.IdentityModel.Tokens/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", - "path": "microsoft.identitymodel.tokens/8.14.0", - "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" - }, - "Microsoft.Net.Http.Headers/2.3.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==", - "path": "microsoft.net.http.headers/2.3.0", - "hashPath": "microsoft.net.http.headers.2.3.0.nupkg.sha512" - }, - "Microsoft.OpenApi/1.6.14": { - "type": "package", - "serviceable": true, - "sha512": "sha512-tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==", - "path": "microsoft.openapi/1.6.14", - "hashPath": "microsoft.openapi.1.6.14.nupkg.sha512" - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==", - "path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1", - "hashPath": "microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512" - }, - "Mono.TextTemplating/2.2.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==", - "path": "mono.texttemplating/2.2.1", - "hashPath": "mono.texttemplating.2.2.1.nupkg.sha512" - }, - "MySqlConnector/2.3.5": { - "type": "package", - "serviceable": true, - "sha512": "sha512-AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", - "path": "mysqlconnector/2.3.5", - "hashPath": "mysqlconnector.2.3.5.nupkg.sha512" - }, - "Newtonsoft.Json/13.0.4": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==", - "path": "newtonsoft.json/13.0.4", - "hashPath": "newtonsoft.json.13.0.4.nupkg.sha512" - }, - "Pipelines.Sockets.Unofficial/2.2.8": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", - "path": "pipelines.sockets.unofficial/2.2.8", - "hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512" - }, - "Pomelo.EntityFrameworkCore.MySql/8.0.3": { - "type": "package", - "serviceable": true, - "sha512": "sha512-gOHP6v/nFp5V/FgHqv9mZocGqCLGofihEX9dTbLhiXX3H7SJHmGX70GIPUpiqLT+1jIfDxg1PZh9MTUKuk7Kig==", - "path": "pomelo.entityframeworkcore.mysql/8.0.3", - "hashPath": "pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512" - }, - "RabbitMQ.Client/7.1.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-y3c6ulgULScWthHw5PLM1ShHRLhxg0vCtzX/hh61gRgNecL3ZC3WoBW2HYHoXOVRqTl99Br9E7CZEytGZEsCyQ==", - "path": "rabbitmq.client/7.1.2", - "hashPath": "rabbitmq.client.7.1.2.nupkg.sha512" - }, - "RedLock.net/2.3.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-jlrALAArm4dCE292U3EtRoMnVKJ9M6sunbZn/oG5OuzlGtTpusXBfvDrnGWbgGDlWV027f5E9H5CiVnPxiq8+g==", - "path": "redlock.net/2.3.2", - "hashPath": "redlock.net.2.3.2.nupkg.sha512" - }, - "StackExchange.Redis/2.9.32": { - "type": "package", - "serviceable": true, - "sha512": "sha512-j5Rjbf7gWz5izrn0UWQy9RlQY4cQDPkwJfVqATnVsOa/+zzJrps12LOgacMsDl/Vit2f01cDiDkG/Rst8v2iGw==", - "path": "stackexchange.redis/2.9.32", - "hashPath": "stackexchange.redis.2.9.32.nupkg.sha512" - }, - "Swashbuckle.AspNetCore/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==", - "path": "swashbuckle.aspnetcore/6.6.2", - "hashPath": "swashbuckle.aspnetcore.6.6.2.nupkg.sha512" - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==", - "path": "swashbuckle.aspnetcore.swagger/6.6.2", - "hashPath": "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512" - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==", - "path": "swashbuckle.aspnetcore.swaggergen/6.6.2", - "hashPath": "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512" - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==", - "path": "swashbuckle.aspnetcore.swaggerui/6.6.2", - "hashPath": "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512" - }, - "System.Buffers/4.6.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==", - "path": "system.buffers/4.6.0", - "hashPath": "system.buffers.4.6.0.nupkg.sha512" - }, - "System.CodeDom/4.4.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", - "path": "system.codedom/4.4.0", - "hashPath": "system.codedom.4.4.0.nupkg.sha512" - }, - "System.Collections.Immutable/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", - "path": "system.collections.immutable/6.0.0", - "hashPath": "system.collections.immutable.6.0.0.nupkg.sha512" - }, - "System.Composition/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", - "path": "system.composition/6.0.0", - "hashPath": "system.composition.6.0.0.nupkg.sha512" - }, - "System.Composition.AttributedModel/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==", - "path": "system.composition.attributedmodel/6.0.0", - "hashPath": "system.composition.attributedmodel.6.0.0.nupkg.sha512" - }, - "System.Composition.Convention/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", - "path": "system.composition.convention/6.0.0", - "hashPath": "system.composition.convention.6.0.0.nupkg.sha512" - }, - "System.Composition.Hosting/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", - "path": "system.composition.hosting/6.0.0", - "hashPath": "system.composition.hosting.6.0.0.nupkg.sha512" - }, - "System.Composition.Runtime/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==", - "path": "system.composition.runtime/6.0.0", - "hashPath": "system.composition.runtime.6.0.0.nupkg.sha512" - }, - "System.Composition.TypedParts/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", - "path": "system.composition.typedparts/6.0.0", - "hashPath": "system.composition.typedparts.6.0.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/10.0.2": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lYWBy8fKkJHaRcOuw30d67PrtVjR5754sz5Wl76s8P+vJ9FSThh9b7LIcTSODx1LY7NB3Srvg+JMnzd67qNZOw==", - "path": "system.diagnostics.diagnosticsource/10.0.2", - "hashPath": "system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512" - }, - "System.IdentityModel.Tokens.Jwt/8.14.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-EYGgN/S+HK7S6F3GaaPLFAfK0UzMrkXFyWCvXpQWFYmZln3dqtbyIO7VuTM/iIIPMzkelg8ZLlBPvMhxj6nOAA==", - "path": "system.identitymodel.tokens.jwt/8.14.0", - "hashPath": "system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512" - }, - "System.IO.Pipelines/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", - "path": "system.io.pipelines/8.0.0", - "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" - }, - "System.Net.WebSockets.WebSocketProtocol/5.1.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cVTT/Zw4JuUeX8H0tdWii0OMHsA5MY2PaFYOq/Hstw0jk479jZ+f8baCicWFNzJlCPWAe0uoNCELoB5eNmaMqA==", - "path": "system.net.websockets.websocketprotocol/5.1.0", - "hashPath": "system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512" - }, - "System.Reflection.Emit/4.7.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", - "path": "system.reflection.emit/4.7.0", - "hashPath": "system.reflection.emit.4.7.0.nupkg.sha512" - }, - "System.Reflection.Metadata/6.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", - "path": "system.reflection.metadata/6.0.1", - "hashPath": "system.reflection.metadata.6.0.1.nupkg.sha512" - }, - "System.Runtime.CompilerServices.Unsafe/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", - "path": "system.runtime.compilerservices.unsafe/6.0.0", - "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" - }, - "System.Text.Encoding.CodePages/6.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", - "path": "system.text.encoding.codepages/6.0.0", - "hashPath": "system.text.encoding.codepages.6.0.0.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.Threading.Channels/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", - "path": "system.threading.channels/8.0.0", - "hashPath": "system.threading.channels.8.0.0.nupkg.sha512" - }, - "System.Threading.RateLimiting/8.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q==", - "path": "system.threading.ratelimiting/8.0.0", - "hashPath": "system.threading.ratelimiting.8.0.0.nupkg.sha512" - } - } +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "IM_API/1.0.0": { + "dependencies": { + "AutoMapper": "12.0.1", + "AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.0", + "MassTransit.RabbitMQ": "8.5.5", + "Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.21", + "Microsoft.AspNetCore.SignalR": "1.2.0", + "Microsoft.EntityFrameworkCore.Design": "8.0.21", + "Microsoft.EntityFrameworkCore.Tools": "8.0.21", + "Microsoft.Extensions.Caching.StackExchangeRedis": "10.0.2", + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.22.1", + "Newtonsoft.Json": "13.0.4", + "Pomelo.EntityFrameworkCore.MySql": "8.0.3", + "RedLock.net": "2.3.2", + "StackExchange.Redis": "2.9.32", + "Swashbuckle.AspNetCore": "6.6.2", + "System.IdentityModel.Tokens.Jwt": "8.14.0" + }, + "runtime": { + "IM_API.dll": {} + } + }, + "AutoMapper/12.0.1": { + "dependencies": { + "Microsoft.CSharp": "4.7.0" + }, + "runtime": { + "lib/netstandard2.1/AutoMapper.dll": { + "assemblyVersion": "12.0.0.0", + "fileVersion": "12.0.1.0" + } + } + }, + "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { + "dependencies": { + "AutoMapper": "12.0.1", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": { + "assemblyVersion": "12.0.0.0", + "fileVersion": "12.0.0.0" + } + } + }, + "Humanizer.Core/2.14.1": { + "runtime": { + "lib/net6.0/Humanizer.dll": { + "assemblyVersion": "2.14.0.0", + "fileVersion": "2.14.1.48190" + } + } + }, + "MassTransit/8.5.5": { + "dependencies": { + "MassTransit.Abstractions": "8.5.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/net8.0/MassTransit.dll": { + "assemblyVersion": "8.5.5.0", + "fileVersion": "8.5.5.0" + } + } + }, + "MassTransit.Abstractions/8.5.5": { + "runtime": { + "lib/net8.0/MassTransit.Abstractions.dll": { + "assemblyVersion": "8.5.5.0", + "fileVersion": "8.5.5.0" + } + } + }, + "MassTransit.RabbitMQ/8.5.5": { + "dependencies": { + "MassTransit": "8.5.5", + "RabbitMQ.Client": "7.1.2" + }, + "runtime": { + "lib/net8.0/MassTransit.RabbitMqTransport.dll": { + "assemblyVersion": "8.5.5.0", + "fileVersion": "8.5.5.0" + } + } + }, + "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { + "assemblyVersion": "8.0.21.0", + "fileVersion": "8.0.2125.47515" + } + } + }, + "Microsoft.AspNetCore.Authorization/2.3.0": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Authentication.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Authorization": "2.3.0" + } + }, + "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1" + } + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + } + }, + "Microsoft.AspNetCore.Http/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.AspNetCore.WebUtilities": "2.3.0", + "Microsoft.Extensions.ObjectPool": "8.0.11", + "Microsoft.Extensions.Options": "10.0.2", + "Microsoft.Net.Http.Headers": "2.3.0" + } + }, + "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "System.Text.Encodings.Web": "8.0.0" + } + }, + "Microsoft.AspNetCore.Http.Connections/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Authorization.Policy": "2.3.0", + "Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Http": "2.3.0", + "Microsoft.AspNetCore.Http.Connections.Common": "1.2.0", + "Microsoft.AspNetCore.Routing": "2.3.0", + "Microsoft.AspNetCore.WebSockets": "2.3.0", + "Newtonsoft.Json": "13.0.4", + "System.Net.WebSockets.WebSocketProtocol": "5.1.0" + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", + "Newtonsoft.Json": "13.0.4", + "System.Buffers": "4.6.0", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.Http.Extensions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Net.Http.Headers": "2.3.0", + "System.Buffers": "4.6.0" + } + }, + "Microsoft.AspNetCore.Http.Features/2.3.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + } + }, + "Microsoft.AspNetCore.Routing/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Extensions": "2.3.0", + "Microsoft.AspNetCore.Routing.Abstractions": "2.3.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.ObjectPool": "8.0.11", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0" + } + }, + "Microsoft.AspNetCore.SignalR/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections": "1.2.0", + "Microsoft.AspNetCore.SignalR.Core": "1.2.0", + "Microsoft.AspNetCore.WebSockets": "2.3.0", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.SignalR.Common/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", + "Microsoft.Extensions.Options": "10.0.2", + "Newtonsoft.Json": "13.0.4", + "System.Buffers": "4.6.0" + } + }, + "Microsoft.AspNetCore.SignalR.Core/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.Authorization": "2.3.0", + "Microsoft.AspNetCore.SignalR.Common": "1.2.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "1.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "System.IO.Pipelines": "8.0.0", + "System.Reflection.Emit": "4.7.0", + "System.Threading.Channels": "8.0.0" + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "1.2.0", + "Newtonsoft.Json": "13.0.4", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.WebSockets/2.3.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Extensions": "2.3.0", + "Microsoft.Extensions.Options": "10.0.2", + "System.Net.WebSockets.WebSocketProtocol": "5.1.0" + } + }, + "Microsoft.AspNetCore.WebUtilities/2.3.0": { + "dependencies": { + "Microsoft.Net.Http.Headers": "2.3.0", + "System.Text.Encodings.Web": "8.0.0" + } + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": {}, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Metadata": "6.0.1", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "4.5.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "4.5.0", + "Microsoft.CodeAnalysis.Common": "4.5.0", + "Microsoft.CodeAnalysis.Workspaces.Common": "4.5.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.CodeAnalysis.Common": "4.5.0", + "System.Composition": "6.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Threading.Channels": "8.0.0" + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.CodeAnalysis.Workspaces.dll": { + "assemblyVersion": "4.5.0.0", + "fileVersion": "4.500.23.10905" + } + }, + "resources": { + "lib/netcoreapp3.1/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CSharp/4.7.0": {}, + "Microsoft.EntityFrameworkCore/8.0.21": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.21", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.21", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "assemblyVersion": "8.0.21.0", + "fileVersion": "8.0.2125.47512" + } + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.21": { + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "assemblyVersion": "8.0.21.0", + "fileVersion": "8.0.2125.47512" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.21": {}, + "Microsoft.EntityFrameworkCore.Design/8.0.21": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.5.0", + "Microsoft.EntityFrameworkCore.Relational": "8.0.21", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Mono.TextTemplating": "2.2.1" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Design.dll": { + "assemblyVersion": "8.0.21.0", + "fileVersion": "8.0.2125.47512" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.21": { + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.21", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "assemblyVersion": "8.0.21.0", + "fileVersion": "8.0.2125.47512" + } + } + }, + "Microsoft.EntityFrameworkCore.Tools/8.0.21": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Design": "8.0.21" + } + }, + "Microsoft.Extensions.ApiDescription.Server/6.0.5": {}, + "Microsoft.Extensions.Caching.Abstractions/10.0.2": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "10.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2", + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "10.0.2", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2", + "StackExchange.Redis": "2.9.32" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { + "assemblyVersion": "10.0.2.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "8.0.0.2", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + } + }, + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": {}, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + } + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "System.Diagnostics.DiagnosticSource": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.ObjectPool/8.0.11": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1124.52116" + } + } + }, + "Microsoft.Extensions.Options/10.0.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.Extensions.Primitives/10.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.1.2": { + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "assemblyVersion": "7.1.2.0", + "fileVersion": "7.1.2.41121" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "assemblyVersion": "7.1.2.0", + "fileVersion": "7.1.2.41121" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.IdentityModel.Logging": "8.14.0" + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "Microsoft.Net.Http.Headers/2.3.0": { + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2", + "System.Buffers": "4.6.0" + } + }, + "Microsoft.OpenApi/1.6.14": { + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "assemblyVersion": "1.6.14.0", + "fileVersion": "1.6.14.0" + } + } + }, + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": {}, + "Mono.TextTemplating/2.2.1": { + "dependencies": { + "System.CodeDom": "4.4.0" + }, + "runtime": { + "lib/netstandard2.0/Mono.TextTemplating.dll": { + "assemblyVersion": "2.2.0.0", + "fileVersion": "2.2.1.1" + } + } + }, + "MySqlConnector/2.3.5": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2" + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.5.0" + } + } + }, + "Newtonsoft.Json/13.0.4": { + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.4.30916" + } + } + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "runtime": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "2.2.8.1080" + } + } + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.3": { + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "8.0.21", + "MySqlConnector": "2.3.5" + }, + "runtime": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "assemblyVersion": "8.0.3.0", + "fileVersion": "8.0.3.0" + } + } + }, + "RabbitMQ.Client/7.1.2": { + "dependencies": { + "System.IO.Pipelines": "8.0.0", + "System.Threading.RateLimiting": "8.0.0" + }, + "runtime": { + "lib/net8.0/RabbitMQ.Client.dll": { + "assemblyVersion": "7.0.0.0", + "fileVersion": "7.1.2.0" + } + } + }, + "RedLock.net/2.3.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "StackExchange.Redis": "2.9.32" + }, + "runtime": { + "lib/netstandard2.0/RedLockNet.Abstractions.dll": { + "assemblyVersion": "2.3.2.0", + "fileVersion": "2.3.2.0" + }, + "lib/netstandard2.0/RedLockNet.SERedis.dll": { + "assemblyVersion": "2.3.2.0", + "fileVersion": "2.3.2.0" + } + } + }, + "StackExchange.Redis/2.9.32": { + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Pipelines.Sockets.Unofficial": "2.2.8" + }, + "runtime": { + "lib/net8.0/StackExchange.Redis.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.9.32.54708" + } + } + }, + "Swashbuckle.AspNetCore/6.6.2": { + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "6.0.5", + "Swashbuckle.AspNetCore.Swagger": "6.6.2", + "Swashbuckle.AspNetCore.SwaggerGen": "6.6.2", + "Swashbuckle.AspNetCore.SwaggerUI": "6.6.2" + } + }, + "Swashbuckle.AspNetCore.Swagger/6.6.2": { + "dependencies": { + "Microsoft.OpenApi": "1.6.14" + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "assemblyVersion": "6.6.2.0", + "fileVersion": "6.6.2.401" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "6.6.2" + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "assemblyVersion": "6.6.2.0", + "fileVersion": "6.6.2.401" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "assemblyVersion": "6.6.2.0", + "fileVersion": "6.6.2.401" + } + } + }, + "System.Buffers/4.6.0": {}, + "System.CodeDom/4.4.0": { + "runtime": { + "lib/netstandard2.0/System.CodeDom.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "4.6.25519.3" + } + } + }, + "System.Collections.Immutable/6.0.0": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Composition/6.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + } + }, + "System.Composition.AttributedModel/6.0.0": { + "runtime": { + "lib/net6.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.Convention/6.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + }, + "runtime": { + "lib/net6.0/System.Composition.Convention.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.Hosting/6.0.0": { + "dependencies": { + "System.Composition.Runtime": "6.0.0" + }, + "runtime": { + "lib/net6.0/System.Composition.Hosting.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.Runtime/6.0.0": { + "runtime": { + "lib/net6.0/System.Composition.Runtime.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Composition.TypedParts/6.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + }, + "runtime": { + "lib/net6.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "6.0.0.0", + "fileVersion": "6.0.21.52210" + } + } + }, + "System.Diagnostics.DiagnosticSource/10.0.2": { + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.225.61305" + } + } + }, + "System.IdentityModel.Tokens.Jwt/8.14.0": { + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "assemblyVersion": "8.14.0.0", + "fileVersion": "8.14.0.60815" + } + } + }, + "System.IO.Pipelines/8.0.0": {}, + "System.Net.WebSockets.WebSocketProtocol/5.1.0": { + "runtime": { + "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { + "assemblyVersion": "5.1.0.0", + "fileVersion": "5.100.24.56208" + } + } + }, + "System.Reflection.Emit/4.7.0": {}, + "System.Reflection.Metadata/6.0.1": { + "dependencies": { + "System.Collections.Immutable": "6.0.0" + } + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": {}, + "System.Text.Encoding.CodePages/6.0.0": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Encodings.Web/8.0.0": {}, + "System.Threading.Channels/8.0.0": {}, + "System.Threading.RateLimiting/8.0.0": {} + } + }, + "libraries": { + "IM_API/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "AutoMapper/12.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hvV62vl6Hp/WfQ24yzo3Co9+OPl8wH8hApwVtgWpiAynVJkUcs7xvehnSftawL8Pe8FrPffBRM3hwzLQqWDNjA==", + "path": "automapper/12.0.1", + "hashPath": "automapper.12.0.1.nupkg.sha512" + }, + "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XCJ4E3oKrbRl1qY9Mr+7uyC0xZj1+bqQjmQRWTiTKiVuuXTny+7YFWHi20tPjwkMukLbicN6yGlDy5PZ4wyi1w==", + "path": "automapper.extensions.microsoft.dependencyinjection/12.0.0", + "hashPath": "automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512" + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "path": "humanizer.core/2.14.1", + "hashPath": "humanizer.core.2.14.1.nupkg.sha512" + }, + "MassTransit/8.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bSg8k5q+rP1s+dIGXLLbctqDGdIkfDjdxwNWtCUH7xNCN9ZuM7mqSPQPIFgaYIi34e81m4FqAqo4CAHuWPkhRA==", + "path": "masstransit/8.5.5", + "hashPath": "masstransit.8.5.5.nupkg.sha512" + }, + "MassTransit.Abstractions/8.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0mn2Ay17dD6z5tgSLjbVRlldSbL9iowzFEfVgVfBXVG5ttz9dSWeR4TrdD6pqH93GWXp4CvSmF8i1HqxLX7DZw==", + "path": "masstransit.abstractions/8.5.5", + "hashPath": "masstransit.abstractions.8.5.5.nupkg.sha512" + }, + "MassTransit.RabbitMQ/8.5.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UxWn4o90YVMF9PBkJeoskOFPneh6YtnI1fLJHtvZiSAG0eoiRrWPGa+6FQCvjkQ/ljCKfjzok2eGZc/vmNZ01A==", + "path": "masstransit.rabbitmq/8.5.5", + "hashPath": "masstransit.rabbitmq.8.5.5.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ve6uvLwKNRkfnO/QeN9M8eUJ49lCnWv/6/9p6iTEuiI6Rtsz+myaBAjdMzLuTViQY032xbTF5AdZF5BJzJJyXQ==", + "path": "microsoft.aspnetcore.authentication.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZuUpJ4DvmVArmTlyGGg+b9IdKgd8Kw0SmEzhjy4dQw8R6rxfNqCXfGvGm3ld7xlrgthJFou/le9tadsSyjFLuw==", + "path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.21", + "hashPath": "microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authorization/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2/aBgLqBXva/+w8pzRNY8ET43Gi+dr1gv/7ySfbsh23lTK6IAgID5MGUEa1hreNIF+0XpW4tX7QwVe70+YvaPg==", + "path": "microsoft.aspnetcore.authorization/2.3.0", + "hashPath": "microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vn31uQ1dA1MIV2WNNDOOOm88V5KgR9esfi0LyQ6eVaGq2h0Yw+R29f5A6qUNJt+RccS3qkYayylAy9tP1wV+7Q==", + "path": "microsoft.aspnetcore.authorization.policy/2.3.0", + "hashPath": "microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ULFSa+/L+WiAHVlIFHyg0OmHChU9Hx+K+xnt0hbIU5XmT1EGy0pNDx23QAzDtAy9jxQrTG6MX0MdvMeU4D4c7w==", + "path": "microsoft.aspnetcore.connections.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==", + "path": "microsoft.aspnetcore.hosting.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==", + "path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==", + "path": "microsoft.aspnetcore.http/2.3.0", + "hashPath": "microsoft.aspnetcore.http.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==", + "path": "microsoft.aspnetcore.http.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VYMCOLvdT0y3O9lk4jUuIs8+re7u5+i+ka6ZZ6fIzSJ94c/JeMnAOOg39EB2i4crPXvLoiSdzKWlNPJgTbCZ2g==", + "path": "microsoft.aspnetcore.http.connections/1.2.0", + "hashPath": "microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yUA7eg6kv7Wbz5TCW4PqS5/kYE5VxUIEDvoxjw4p1RwS2LGm84F9fBtM0mD6wrRfiv1NUyJ7WBjn3PWd/ccO+w==", + "path": "microsoft.aspnetcore.http.connections.common/1.2.0", + "hashPath": "microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Extensions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==", + "path": "microsoft.aspnetcore.http.extensions/2.3.0", + "hashPath": "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Features/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==", + "path": "microsoft.aspnetcore.http.features/2.3.0", + "hashPath": "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Routing/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-no5/VC0CAQuT4PK4rp2K5fqwuSfzr2mdB6m1XNfWVhHnwzpRQzKAu9flChiT/JTLKwVI0Vq2MSmSW2OFMDCNXg==", + "path": "microsoft.aspnetcore.routing/2.3.0", + "hashPath": "microsoft.aspnetcore.routing.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZkFpUrSmp6TocxZLBEX3IBv5dPMbQuMs6L/BPl0WRfn32UVOtNYJQ0bLdh3cL9LMV0rmTW/5R0w8CBYxr0AOUw==", + "path": "microsoft.aspnetcore.routing.abstractions/2.3.0", + "hashPath": "microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XoCcsOTdtBiXyOzUtpbCl0IaqMOYjnr+6dbDxvUCFn7NR6bu7CwrlQ3oQzkltTwDZH0b6VEUN9wZPOYvPHi+Lg==", + "path": "microsoft.aspnetcore.signalr/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Common/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FZeXIaoWqe145ZPdfiptwkw/sP1BX1UD0706GNBwwoaFiKsNbLEl/Trhj2+idlp3qbX1BEwkQesKNxkopVY5Xg==", + "path": "microsoft.aspnetcore.signalr.common/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Core/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eZTuMkSDw1uwjhLhJbMxgW2Cuyxfn0Kfqm8OBmqvuzE9Qc/VVzh8dGrAp2F9Pk7XKTDHmlhc5RTLcPPAZ5PSZw==", + "path": "microsoft.aspnetcore.signalr.core/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hNvZ7kQxp5Udqd/IFWViU35bUJvi4xnNzjkF28HRvrdrS7JNsIASTvMqArP6HLQUc3j6nlUOeShNhVmgI1wzHg==", + "path": "microsoft.aspnetcore.signalr.protocols.json/1.2.0", + "hashPath": "microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.WebSockets/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+T4zpnVPkIjvvkyhTH3WBJlTfqmTBRozvnMudAUDvcb4e+NrWf52q8BXh52rkCrBgX6Cudf6F/UhZwTowyBtKg==", + "path": "microsoft.aspnetcore.websockets/2.3.0", + "hashPath": "microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.WebUtilities/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==", + "path": "microsoft.aspnetcore.webutilities/2.3.0", + "hashPath": "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UcSjPsst+DfAdJGVDsu346FX0ci0ah+lw3WRtn18NUwEqRt70HaOQ7lI72vy3+1LxtqI3T5GWwV39rQSrCzAeg==", + "path": "microsoft.bcl.asyncinterfaces/6.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.6.0.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Analyzers/3.3.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==", + "path": "microsoft.codeanalysis.analyzers/3.3.3", + "hashPath": "microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", + "path": "microsoft.codeanalysis.common/4.5.0", + "hashPath": "microsoft.codeanalysis.common.4.5.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", + "path": "microsoft.codeanalysis.csharp/4.5.0", + "hashPath": "microsoft.codeanalysis.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", + "path": "microsoft.codeanalysis.csharp.workspaces/4.5.0", + "hashPath": "microsoft.codeanalysis.csharp.workspaces.4.5.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", + "path": "microsoft.codeanalysis.workspaces.common/4.5.0", + "hashPath": "microsoft.codeanalysis.workspaces.common.4.5.0.nupkg.sha512" + }, + "Microsoft.CSharp/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", + "path": "microsoft.csharp/4.7.0", + "hashPath": "microsoft.csharp.4.7.0.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WgCdRIS+hpq95zJo6oI9tvyQV/0EH9qJiD4FL60m+ghpHqHY6rY3D793HLe64yD85IHwumuX4hNJeHYeJEvM0g==", + "path": "microsoft.entityframeworkcore/8.0.21", + "hashPath": "microsoft.entityframeworkcore.8.0.21.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1ZEXvRk8Rk+MfW06EmSYg7GQJZdOocJf61nezBmC2Kti0barUART0MHWgNzQox1lIzw9uv3A1HWJUjmPswCO6w==", + "path": "microsoft.entityframeworkcore.abstractions/8.0.21", + "hashPath": "microsoft.entityframeworkcore.abstractions.8.0.21.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MGX1NkW44ju8yIzfg+ao/YITHyA23EThp8HfuNp5zaqihL+kNORVMUUnewBjakiCq0938bzFKu9HRmZsXS4b2g==", + "path": "microsoft.entityframeworkcore.analyzers/8.0.21", + "hashPath": "microsoft.entityframeworkcore.analyzers.8.0.21.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Design/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-q7EP42PSWPKkyztgsv1EmHAFjreN2fqww77L2Tjhp2dwfEjidgHjtX6yrZBDUbIFva5Y87xAdv9hQoBAUZLryw==", + "path": "microsoft.entityframeworkcore.design/8.0.21", + "hashPath": "microsoft.entityframeworkcore.design.8.0.21.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P1ywvCew/jKhbJApuIk2Sm4Ejq/5FOgEh2IooB48juABzGAlfUjW2kBlbevWO9mNK+sMPS2vnf+US8W0fEo46Q==", + "path": "microsoft.entityframeworkcore.relational/8.0.21", + "hashPath": "microsoft.entityframeworkcore.relational.8.0.21.nupkg.sha512" + }, + "Microsoft.EntityFrameworkCore.Tools/8.0.21": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Jmm3WtUyalpgfHEozcD+q0SmbKwMTVsZCz46ws/YHbePScu3PkNMmhn0iUFvi32djCJBCfOvXtQdnJFyXyW6LA==", + "path": "microsoft.entityframeworkcore.tools/8.0.21", + "hashPath": "microsoft.entityframeworkcore.tools.8.0.21.nupkg.sha512" + }, + "Microsoft.Extensions.ApiDescription.Server/6.0.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==", + "path": "microsoft.extensions.apidescription.server/6.0.5", + "hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.Abstractions/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WIRPDa/qoKHmJhTAPCO/zLu9kRLQ2Fd6HD5tzgdXJ3xGEVXDHP6FvakKJjynwKrVDld8H4G4tcbW53wuC/wxMQ==", + "path": "microsoft.extensions.caching.abstractions/10.0.2", + "hashPath": "microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "path": "microsoft.extensions.caching.memory/8.0.1", + "hashPath": "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WEx0VM6KVv4Bf6lwe4WQTd4EixIfw38ZU3u/7zMe+uC5fOyiANu8Os/qyiqv2iEsIJb296tbd2E2BTaWIha3Vg==", + "path": "microsoft.extensions.caching.stackexchangeredis/10.0.2", + "hashPath": "microsoft.extensions.caching.stackexchangeredis.10.0.2.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.DependencyInjection/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zOIurr59+kUf9vNcsUkCvKWZv+fPosUZXURZesYkJCvl0EzTc9F7maAO4Cd2WEV7ZJJ0AZrFQvuH6Npph9wdBw==", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyModel/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==", + "path": "microsoft.extensions.dependencymodel/8.0.2", + "hashPath": "microsoft.extensions.dependencymodel.8.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", + "hashPath": "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P9SoBuVZhJPpALZmSq72aQEb9ryP67EdquaCZGXGrrcASTNHYdrUhnpgSwIipgM5oVC+dKpRXg5zxobmF9xr5g==", + "path": "microsoft.extensions.diagnostics.healthchecks/8.0.0", + "hashPath": "microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AT2qqos3IgI09ok36Qag9T8bb6kHJ3uT9Q5ki6CySybFsK6/9JbvQAgAHf1pVEjST0/N4JaFaCbm40R5edffwg==", + "path": "microsoft.extensions.diagnostics.healthchecks.abstractions/8.0.0", + "hashPath": "microsoft.extensions.diagnostics.healthchecks.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.Hosting.Abstractions/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", + "path": "microsoft.extensions.hosting.abstractions/8.0.1", + "hashPath": "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "path": "microsoft.extensions.logging/8.0.1", + "hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RZkez/JjpnO+MZ6efKkSynN6ZztLpw3WbxNzjLCPBd97wWj1S9ZYPWi0nmT4kWBRa6atHsdM1ydGkUr8GudyDQ==", + "path": "microsoft.extensions.logging.abstractions/10.0.2", + "hashPath": "microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.ObjectPool/8.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==", + "path": "microsoft.extensions.objectpool/8.0.11", + "hashPath": "microsoft.extensions.objectpool.8.0.11.nupkg.sha512" + }, + "Microsoft.Extensions.Options/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1De2LJjmxdqopI5AYC5dIhoZQ79AR5ayywxNF1rXrXFtKQfbQOV9+n/IsZBa7qWlr0MqoGpW8+OY2v/57udZOA==", + "path": "microsoft.extensions.options/10.0.2", + "hashPath": "microsoft.extensions.options.10.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QmSiO+oLBEooGgB3i0GRXyeYRDHjllqt3k365jwfZlYWhvSHA3UL2NEVV5m8aZa041eIlblo6KMI5txvTMpTwA==", + "path": "microsoft.extensions.primitives/10.0.2", + "hashPath": "microsoft.extensions.primitives.10.0.2.nupkg.sha512" + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", + "path": "microsoft.identitymodel.abstractions/8.14.0", + "hashPath": "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", + "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", + "hashPath": "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", + "path": "microsoft.identitymodel.logging/8.14.0", + "hashPath": "microsoft.identitymodel.logging.8.14.0.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols/7.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", + "path": "microsoft.identitymodel.protocols/7.1.2", + "hashPath": "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512" + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", + "path": "microsoft.identitymodel.protocols.openidconnect/7.1.2", + "hashPath": "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512" + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", + "path": "microsoft.identitymodel.tokens/8.14.0", + "hashPath": "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512" + }, + "Microsoft.Net.Http.Headers/2.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==", + "path": "microsoft.net.http.headers/2.3.0", + "hashPath": "microsoft.net.http.headers.2.3.0.nupkg.sha512" + }, + "Microsoft.OpenApi/1.6.14": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==", + "path": "microsoft.openapi/1.6.14", + "hashPath": "microsoft.openapi.1.6.14.nupkg.sha512" + }, + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==", + "path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1", + "hashPath": "microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512" + }, + "Mono.TextTemplating/2.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==", + "path": "mono.texttemplating/2.2.1", + "hashPath": "mono.texttemplating.2.2.1.nupkg.sha512" + }, + "MySqlConnector/2.3.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", + "path": "mysqlconnector/2.3.5", + "hashPath": "mysqlconnector.2.3.5.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==", + "path": "newtonsoft.json/13.0.4", + "hashPath": "newtonsoft.json.13.0.4.nupkg.sha512" + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", + "path": "pipelines.sockets.unofficial/2.2.8", + "hashPath": "pipelines.sockets.unofficial.2.2.8.nupkg.sha512" + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gOHP6v/nFp5V/FgHqv9mZocGqCLGofihEX9dTbLhiXX3H7SJHmGX70GIPUpiqLT+1jIfDxg1PZh9MTUKuk7Kig==", + "path": "pomelo.entityframeworkcore.mysql/8.0.3", + "hashPath": "pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512" + }, + "RabbitMQ.Client/7.1.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y3c6ulgULScWthHw5PLM1ShHRLhxg0vCtzX/hh61gRgNecL3ZC3WoBW2HYHoXOVRqTl99Br9E7CZEytGZEsCyQ==", + "path": "rabbitmq.client/7.1.2", + "hashPath": "rabbitmq.client.7.1.2.nupkg.sha512" + }, + "RedLock.net/2.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jlrALAArm4dCE292U3EtRoMnVKJ9M6sunbZn/oG5OuzlGtTpusXBfvDrnGWbgGDlWV027f5E9H5CiVnPxiq8+g==", + "path": "redlock.net/2.3.2", + "hashPath": "redlock.net.2.3.2.nupkg.sha512" + }, + "StackExchange.Redis/2.9.32": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j5Rjbf7gWz5izrn0UWQy9RlQY4cQDPkwJfVqATnVsOa/+zzJrps12LOgacMsDl/Vit2f01cDiDkG/Rst8v2iGw==", + "path": "stackexchange.redis/2.9.32", + "hashPath": "stackexchange.redis.2.9.32.nupkg.sha512" + }, + "Swashbuckle.AspNetCore/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==", + "path": "swashbuckle.aspnetcore/6.6.2", + "hashPath": "swashbuckle.aspnetcore.6.6.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.Swagger/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==", + "path": "swashbuckle.aspnetcore.swagger/6.6.2", + "hashPath": "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==", + "path": "swashbuckle.aspnetcore.swaggergen/6.6.2", + "hashPath": "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512" + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==", + "path": "swashbuckle.aspnetcore.swaggerui/6.6.2", + "hashPath": "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512" + }, + "System.Buffers/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==", + "path": "system.buffers/4.6.0", + "hashPath": "system.buffers.4.6.0.nupkg.sha512" + }, + "System.CodeDom/4.4.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2sCCb7doXEwtYAbqzbF/8UAeDRMNmPaQbU2q50Psg1J9KzumyVVCgKQY8s53WIPTufNT0DpSe9QRvVjOzfDWBA==", + "path": "system.codedom/4.4.0", + "hashPath": "system.codedom.4.4.0.nupkg.sha512" + }, + "System.Collections.Immutable/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", + "path": "system.collections.immutable/6.0.0", + "hashPath": "system.collections.immutable.6.0.0.nupkg.sha512" + }, + "System.Composition/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "path": "system.composition/6.0.0", + "hashPath": "system.composition.6.0.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==", + "path": "system.composition.attributedmodel/6.0.0", + "hashPath": "system.composition.attributedmodel.6.0.0.nupkg.sha512" + }, + "System.Composition.Convention/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "path": "system.composition.convention/6.0.0", + "hashPath": "system.composition.convention.6.0.0.nupkg.sha512" + }, + "System.Composition.Hosting/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "path": "system.composition.hosting/6.0.0", + "hashPath": "system.composition.hosting.6.0.0.nupkg.sha512" + }, + "System.Composition.Runtime/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==", + "path": "system.composition.runtime/6.0.0", + "hashPath": "system.composition.runtime.6.0.0.nupkg.sha512" + }, + "System.Composition.TypedParts/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "path": "system.composition.typedparts/6.0.0", + "hashPath": "system.composition.typedparts.6.0.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/10.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lYWBy8fKkJHaRcOuw30d67PrtVjR5754sz5Wl76s8P+vJ9FSThh9b7LIcTSODx1LY7NB3Srvg+JMnzd67qNZOw==", + "path": "system.diagnostics.diagnosticsource/10.0.2", + "hashPath": "system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512" + }, + "System.IdentityModel.Tokens.Jwt/8.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-EYGgN/S+HK7S6F3GaaPLFAfK0UzMrkXFyWCvXpQWFYmZln3dqtbyIO7VuTM/iIIPMzkelg8ZLlBPvMhxj6nOAA==", + "path": "system.identitymodel.tokens.jwt/8.14.0", + "hashPath": "system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512" + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "path": "system.io.pipelines/8.0.0", + "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" + }, + "System.Net.WebSockets.WebSocketProtocol/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cVTT/Zw4JuUeX8H0tdWii0OMHsA5MY2PaFYOq/Hstw0jk479jZ+f8baCicWFNzJlCPWAe0uoNCELoB5eNmaMqA==", + "path": "system.net.websockets.websocketprotocol/5.1.0", + "hashPath": "system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", + "path": "system.reflection.emit/4.7.0", + "hashPath": "system.reflection.emit.4.7.0.nupkg.sha512" + }, + "System.Reflection.Metadata/6.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", + "path": "system.reflection.metadata/6.0.1", + "hashPath": "system.reflection.metadata.6.0.1.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==", + "path": "system.runtime.compilerservices.unsafe/6.0.0", + "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512" + }, + "System.Text.Encoding.CodePages/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "path": "system.text.encoding.codepages/6.0.0", + "hashPath": "system.text.encoding.codepages.6.0.0.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.Threading.Channels/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", + "path": "system.threading.channels/8.0.0", + "hashPath": "system.threading.channels.8.0.0.nupkg.sha512" + }, + "System.Threading.RateLimiting/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q==", + "path": "system.threading.ratelimiting/8.0.0", + "hashPath": "system.threading.ratelimiting.8.0.0.nupkg.sha512" + } + } } \ No newline at end of file diff --git a/backend/IMTest/bin/Debug/net8.0/IM_API.dll b/backend/IMTest/bin/Debug/net8.0/IM_API.dll index a3b4ee911c6bd4f2a81aa98c726ab4708adc3d12..2e50c8a828e7f4900d3a845c962aefab36ab2e52 100644 GIT binary patch literal 472576 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 >v-CJ|EmxFV05wDIQ@YByR;Z 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≻*IpW|)T7 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 delta 99 zcmZpe!r1^sEsR^3zPS0PFeEdWF{A>?GzKFeG+{^qvP^&?77XSLhCr4fm0RSF=68QiC diff --git a/backend/IMTest/bin/Debug/net8.0/IM_API.pdb b/backend/IMTest/bin/Debug/net8.0/IM_API.pdb index 4d12f0b522a52b8c428b4d49c3bd8b8ba37be465..fe761c3215bb772e1994782e9900d2a9961772b8 100644 GIT binary patch delta 44973 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%0DBHV;?!oG`;L2wv72cCa&Ng$UD@# z*O>S~n;3d(3VUV4jyTncH_#CN8FA_t##>-U)I&au?=w6PwT1=G6yP|1jgdy2an#`K zxA2cUk96zZ%-xovZ@l}Bdk?ii!RLl>)Iy0oSB(2JThW^ca*8yYo-`c0H-{qY2 zTq1rqLLTvp5(ka0kF+?KyopRL#D2**$_DL_QRFcf#}%W)V=a$%*ciwv+jS(ye|JF+ z?ELZk#Sib##^J|W>2$YD6Yp##y}uZaf4D;K7`6Z5Q`8Zoo2YxnVo^tp!~byjLo>XA z^l;2@Jkd(q9~bc+H>y3+%BOpZ<;cgQ%6U&1-X~mN&yC$r_~3iexc`KU^`-H_Q{K%_ z8F5dwsKAlD$kWEWr&{IoBLmESd&n?;HEyykU}Tyc#^vXHzCL3_J>!8mjqjdmc{2RQ zY4GuruPQ6>@6&1;jh|`7^SjOF3DW$m8IYE=XbG@6a?5$7f|22=mM5eSJE!o^$PDtR zkn;0bQ|BeU=ZxvRpmdqd&OYZq-1eR~Ql4oYUBR_EuoM4`3^p47%RB7_ zyuTYOh2<{d{lmDg*P!nn_`x)Sru6&?&fG$u!X5&D#O^4LyVOFw8C;| z%l}EVjJ`l83^cSeRQRVDT4)zjb;T^C8y1xBGc2L-=TKqYF$?K|k%fO@j`J%s&))Fm z{TjxwZ?Hxp`k;Blw>;x}q=>$ViRg!z{QWsIW6n!0w+t=9JEU5WtZwhn$}-RI9ad51 z5#Hg@!QK(@hkHj>G2=$nka;fe_;P0a1o(@1Cq|1d;GKkak>1Iehk13Y-zkU-@lHkm zCB4(Dx0MF@yfdoGJj6S@y3F%<=RoK4E6%%4;j9zOv=gZW}o@+dx;+ zbPoJcf|HB|nk`EE(^zJ+)yuIChp1NU;2Q>8m3-cbTrCB?cZ?b~Tj}gSz}tYmeDRWR zP%-vVu=g)xl+6~R-9-=ftp&aJj7J=ubqAs^aEx58RN;$i?|q|UfUUSYImr8fcmL4f zHr|KEmjSlU!TSbsr*fG(a$jp6_%|~6ea4*tTVw5SqmtcLMf=(K#%?R1Ju+t6ZFTu@ zd)aOa)*c&A?VQ>PqeP%BulA48D9~2Pb^4AhQu;b=Obq0xC&rRMTb1zNWy-mdo<{z3)HyzVrFynddp@+&lNoJ<~Rm&8!6b^|AJe<=iWh zi3$uRO58!Tf|$4L*XQ#uyY*#Cjdv1R#n!qdHD{hIyg}=a>he0%E}~X-G%8TLXYY=z z$F%>f@8ln%KHhMnRn+~7e5WHXk;XB-7;5oPoSoJ` z2Y(74nnmJEFj}ZRcrQ1^GKh`f|9}U5AVC!wHL44q0G@GrpEgYN_n&M7hZ87(vzd<^(G z@SEV(b72sS78(t1fTw`p2d|b}Vm@ND&^$)BMynw1!0{YBB98=>W3*5Q@Grqe*pe3c&RXH zT%D2Q!H0ma1>X*S2mCpBseFiMv`}yGLEuZl-5VfoLOca8lwTT@WwcOt@Nd8ufv*L> z0saKM5FctB&uF2};9r9;0$&S$8~iWu@PZOwhS5TCZirqG^TAhxUj)Aco+Dfu6k@bc zYw(WX;ov&>PVl3J+!7QJAq_GyTBtI3eemAkgTRx( z*Mr{ye-0jA7}+rLF%AAX_;m2a;FrPw1kY1M;)^m`=+h!x{~C3NFyL4Seg^zHc+R5I zAcB#1FZkEsOTd2yzYhKwyihTTFUx45uHb#a=Yg*RzX|@7(QTo^#ic=cMs5J!7kmNu zTJRg-&%n!kDDkxzEz}o$DEM0N9pEp)9VH~DDkGm8z^8yO2H#bZ?K$apURmgDDG9p6 zXrXFlg*RDO)6qdImq53M(>qHN-5yPpL=S<_f&T%mW5n(pqqlHWawkz1$ia*YX*4ha zI1M-#xEQz+_%rZV;7;IvM(?tSjxk?EXMmT1H+hyUeA)iG0gJE?_CfdDIlRoYA{XqTN33wdiy`!DMY5#jTTR zoi4>tcnZy(Vm2~YQ)tUne~ZoF;IPV5>1TszD!Hc#u3$9i45N23C}xIOx&r$E2Lngz zkJASSOr!g<*5e#m(oLtEGl{0tfmz&f)=V=fV0LOZGwIT7HWqSsq)Ky%I#NwweP9z{ zE8wTVj=;}>UjYXI2Lt1QV}Uww25=r@CrSdYhGhd|SK13aBIu@55Ep^hfOmmXWnD?C ztSdc+48~+xq$hBMS!J%6@fJvyHP#hYFLsPyOUeS(w$^1-7%EzBtz*= zt>y`S3hW5{9QYM*0OJ=l7$})_r+DT)kXaA()`P~vq623D=K+&|tAUT*+_(oxW<6*F zOk07n>w3^`@Poh;z;lc}v6-IOOiv8DCkEYctd4*Uu@05}*J z59BIwa|6lsOBxH4?sWj?G4`e;pzP!?X*Kgc*nA&sz7KYCACjHihh+Emp=56i@Cfh} z@FMUUQ1(F|y36S9LysX|0N((E7Kl4NFe@+@Fh8&euoSQ&um-RmuraVDFb3EG*d5p# z*dO=<<2P>lQC2htI0-l%m9SuUA{Xmb|@&id?gXqOVH<5=Niv+&{4gd}Y#skL!b>Ix(JYW)VHE;uPD{wdP zAn*k6954lV3-|!|*CMWe550m2SS*7`2h0r24h#hr0)7ZA2doOL4g3h$9M}ffo^c43 zT}Ct%dvqxF=ujLlLvg$er8n$#52c{x5|kd86_^W{A6Nufig6guoBh}|uR*>IA>ES?-}8ikxjA*WHO^HHetQK<7#By~QD3L>%? zunbUcgho+i@JL_-pxg(IqNdD8qvz4+c{F_nOBpx2N2BY}=z28Cr!V`(+q8-Q{qA4_s3A4^+d*$q4hJOMn%IF23yp9B8`T33o)4%%_#1eb$$9AyE| zv6Ab59ECy1jv7a@KgLl6EG2;Dfz^O@fFA=}0NVmT19k=W0`>!b4;%^{1)K;pfO8o6 zK5-Gm3g9~6FTfqZeZZr@)4)r>>%c#OPk{dbX_X{k17-jQ19LNurvkvDKqCKlkvH%X_J=_wp9f!Z#y z$Yv^&9Xum28!!*BHn1l!fzi8EpM8IgP}?od z?7)n`Y`b|^m2p?0u`H|MnX($mGi5cJ3X5#D8qEe@2wVQa*`BA^BW z+%>75FCY?6oRN6qj3jy1jHG7ljihK`J78yE4`3hQK%fUW0w}j}ku;vUcd1HKm{+A) zK-t+1 z1AMK@U@FVtkSari*a0YN5P^z;GNp+TSQxZ(8fg6BZfpWWD2Df+KEXv|6 zQx=6;mUeSYSvm+j0X)a(T}t2+of7y&rv%CQs05|3w*<*PE1t6{F%lZ*eNiyf{?>%E_TP)dH8@S)62ds!JGk_bj#bk06k!-E(OuNAjwC81xY>%EQsnYhzmkNTo4NKWk`~$UyxpK^MYhK znA$}+Ihco24`3glT${o%bKy8x!f~*K(?EC|c=t~@d047TAsWq=LfAirNcK-5oXrc7 z?4?5JunJOfwh&K{jL=<(rulUnLG#%XL2~tsAo+wef~)D&DQw=gQVFb=Z9)Edn*6{c8U^PJRGj9IO@XwzXPIjy;A;t?i=ta+&I zQE_F?;bZJ7-Z_|79w*91l}^j=5VxKcEOVYHgxUbx1Le>UAvyHDOLkl= zvg2Zrow{&LcIpX~Q)G6WBC}({vQyvlG6w!_;CCG0T{2Rx3#mL4UGwqG)azoZJw27a zl*%(ul8-y7?&VawONp`5dY|1vrLLsLq@()6-Ox6A<8uU3k(AV+Agbr%{EIOk4Z127yt_pLjbKv(%?7RlZUcJDlzqd z(Tv_DfqKI718@Rxsy?JhaJEUb(HG^7okTsa$xgTG^dE>rC+l@0or>#!6p3)_)RmRG z=(O%V%hxy52xX+Itqd=NA)9DgGu}c%MgB*FA+EJxGn7LVx?X*EWUfK1%hbT6Vr?>GIe=Cj5!N zW$$~I#!opWpAt8PBAzLd=@eS`Or|&3Ap2kPfqh0`HeepTMRECvKFDoQLAI!iLARc( zTH1#H?QePJXPHJ*Uc4JKjqbf?>Gh9aOf1dxH&M=)enHgR&oZ6PzGtcV@4Kz0Q-A&I z5A#`PQ2JN0AF|D)cK^K_GLt(0$F8u?W>Sy$T;Z?%gO9yu3F6~gU1rkc_bgd7jkocE z+e3>qjXZQ0Si>Ux8{n_NECFKa1l$D7Xcfz+!1=(-z;c0T3tSAm2Fw_w(Gcnc><63x zOcZp}PY_#yM}Sv=FM&>*G|mnD5Lg5F39t+BYv2!z>e8G>v86ek29~i4{~EX*7~&9% z`wOi00&}JlQ+MD`z`uYkonoH_yZ{V#iKQ9vC*VHd9U!F_ZwRmw@Dt!yz?r};z)Nnd zo&lX1q*;Do9pGoc{=kvIxs2)(g)F0xWfV!4QS^jkqDZogBFQp}B*`d}B%?@@j6#x8 z^iw*1(ISc@%P5j8qmX43NtRJ0Sw6%V^AHH0Cl|=8`QkmC=~WXiR1FdsEpKNw%f-y!p1Y+l^H~RuL_LOM$O|p9G72 z1@I-XPByWO06qj(3K7cy;7`CmflacDy))1QG=QssM}d#BbN#m^TMof8z?Q&%z%ju2 zz|Fw(z~{j9Ii*!7umYpH#30KUWEn%dImsB3Bx8_d3`vqP#7Vk&C0WKG%NUX@V@R@$ zL6$KjS;mlL8G|fiNV1F}$ufo{%NS%CLy~0-NtQ7rS;mlL8AFeNl4J~$j3G%fh9pUM z3`v$TBw5CgWEn$}WeiD{F(g^WAj=r?&oUNS#v;pDWEqPrW07SnvW%51DHch_BFR`J z8H*%i-N-T)S;ivESY#QCEMt*nEV7J6ma)h(7Fot3%UEO?i!5U?m9fY&7Fot3%UC2C zizH)_WGs@5CAVZ5i!5W2W$b%dwnvujk!5>i*&bQ8N0#l8CCBi7YELhLO>zmJ3A_$0 zoLejtf#-nP^N1zNjn!D-17KiYapVJ50yYDF1xx@Y0Z#&-0fR%ORdHY)U<~kkpaEP3 zOa`7|l*RjK!6Xh@#v#i%WEqDnvg8=fFAiD8kz^T1MZ*NY1#STr%qNy!z!kuo zz_9#c9}1ifT%VuoKaLJTTmxDQNKiPi8n7F1BycG(8F&Wx0GP3$v?>Oy4QvJM!Kf}B zXd7EPkTYEHYeshmS_APK7+pvlOMy8fg!cme3Um|}OB3LF;A>#@B4Qr^{0aC$QLz*S z)(5r&_5)4r+K2v@ zL5cMDlUkSZw}g~_*OH5Ryl2^{T4ejV=r7d-OLUocJIYNP z-?RMno~3A6|5m-;vs`?~!rRYH4a>dTEDw!+&+_|wmg42#ZIzee-?JR{vxHLn3h%Uv z<4-fDy=!92iT5nQ72j#bF+aX%x$~Z-P9^V6elY2kGzz8}z;miw>Oc#aj#tAo_s3@iq?sLD6>B zgB2})x1z=GQMCAn=u3J`aF6%1PEfS8ny6@Lm7r+xPg1n_bw!JRvZBR5MbYec(^SPE z0fwTbgK3Hu|8zx*e} zV7a2jze3UCU$5wVtT!s!)|m~P6oWL_tZ3=*7e$NzS4E3|i=xH9Rng+#riXml%)Q&s zx<}E{>NiD8tG$XA|2{>Ff4`!|e?ZaVKd5N-m!U(7K>`jdS~@tQXz?G_LwYyMe9F&y zS|7mHi+WxS?p-!c9es|CXY~e_PSwzoTgJ-&HjGGtj+&p1xAb zsPFo!K$91WMb0EIl_t`~zlxSkyi&CI|5LPGFYt98cYyWX(|}dc(t}OW(t};m;&&)o z{OJ@eey5_v?@~1T-IQK2NI(WfO9$DlU-@=IW!5rvnWDx2iK3+jV*LitPVr0o_KKGFpZPTJe+h{58Mwk(cTlwW zJ1ScIJ(Ug00D37pBkSJQZ{L~Huax%E-`A;H=3hGOlWJft0euxM{(g!U|2K*je}6@b ze}JOJKSa@0SpR6&oNS+D&f=8->0r2`rGpWQ7XL^^i+_}&#Xnln;vb`E@sIUtY#)1I zoL|6rMN0?M6fH$J(>my#T|7(i%LZmETH4Q1wD{*jyS+C+5|HQ@Fi+9qpRZ`?V1c5= zzfjTQU!-X9FIKepmxz`>E|Wz9lKcXeDq8%@6fGSrSG4$7C|dk06)pZ%iWdKB*6!3> zKnd8a1Po=pMX743k*$hfI@qRYX}?|3;!jqz_;)B;{5!3D{#6HXNC}X`>WKBNzXt20 zimu7}n4doGr%zai`uY#y_>+pR#QJwDzuTQU0O|0QU%+Wai~o!@-WM+&o>jE?&ndbI z>+_11qP?JK@n3W+2I=6EpT2Az`OXHfC|Wv5QM9!G!%ttej`6k6%l>PMmU#DdKf?{{ zcwYm_@TQ_=m)%mdba2~G-|^FT{q&#jYB$|`*Fg8J3BCbr4kvoRe^ z(t{Q_%QpnshZaT4J_`t(=kph0ZB?}R0|OWP{L(&1(d_4IX5eyPfXu30(b9n0dkm$M9tt||9S8I=xY1DO;p9b^vN?(0DOSrje)4-_r_ ztcn(YaNurVdr2^xqHFT@DMT5ubdX)q(m@WTL-FTSwD@x=@#4>|Xz}M!;>Dj=(fo2Q z-!&=*nWHd8i$7oBeqRRCL4HMxzd+!-Wm-_tQbXa2mKrPcR=Y_8A_Cj{HsD}gSkXCH z7g4l@b>qMQUwjePO%z?2byG!GW8F;Aa$GfM9gO47&AXEgEqn%fDV<-tXPpfJ^6DDD zbg$?PtXnBs1`w_2aMo=UEdy$+Xcy~GQZ;X%-tbSmz+Ao!M)8A9oTA%s%AEuA`uwsB zyDM5wWuLPSF$X+{^;fL3o4P4qmisEYD<9(hO)cA}!n}cjO2Am2pFxTaNXG}NqGxi4 zLls?y2OO{H>a6v^e7*tn;{K;9ItT0NUXATz0JD^UK^!nw(Q{ePSM*mrz(tB)$vR2V zuXzB=72S-BY-3T6!H= z%I!1!#2souZv)11fGw!3&;JGQLT69~pU%SZ8T@osMd#s!LKOX+cTrA7%X3v2Gs5|Ed50Y&d(9TCKT0%0Cj7Ve<1qOCl@B8tw&11PF!`E;R}qHl40akpY9$A%9T zt+6hl=peptEve}H++it2PheeI(O>WY$|$-s_g7ZY@?n{~oMNcN8J1V{Jr1a#=<_@! z6&3B~4OUWg3!ak7istunsEVS+U-ezxjH)RH-ab`Vv^1#Ur)w(uA^Rg0-GcOf!%DcN zSzW~}Vf7R(o2l=o8~Evle!5XmL*L8~<-8gz`YP)tZ?&6pv!Ur*15Ib$OwqrxZm#GF ztXnAh4(ljI4`SU?(Q?*mrRcV-Tl+MhQ{~qP(LMvwW!7yJ-J5k=Me{F-=@UiEE0{5g z*4Y24qO0;Qj8$}Fj&GN$<(xi|f7+)Sm`lKCemYLkQ`z6aPj^(bwC|+o-&uE7w6yPH zYFtyq&{YYL4!Zg2?tc1nMN9iH6fJiFJrpf>4LubtcLlw?+IvltfG?GRWvstev=mVv zMN1L&RkYMlKSfIoeWPfpq5g`N8X5p?UelzAzEuLGhz2TJ!oE|q6w&vJmKqwQXsMwe z6fHG0SkY2LZqcdNw0oSfM+uN38lq?^qM?eGDH^6|si7YgE&g~vJzUW;Wg}Sou4!Tz zsRT#|qZBPgG+NOTKgLgwRkXAp=cmW}=?Os%-(J(C!--0O6j6errA8(xT8c10 zT58BpwA9cvMN17$4|2afQ%MocPy(cgW-3~WXqKX-h-NEVYG{t4rH1AzT52d!(NaV6 zPz2^hQi^E467W0g1&Wp;TBv9#qD6|n#~CkHwA9cNMN17ODO#q;y;Lzs5iL`+1T6Q{ zD-N=cj-6)9V#2?Kdb|YG|XPrA9U> zI)gmZZdMEu@Qb3Qh_)(PifEgnrHHmGT52d+(NaS@6fHHhQ_&NoD0V3ZDWctqmLl4t zXo>$#(NaWv6)iQiPtj6C`xPxUbU@K=DWZdl;T~svNYPS6hZQYFbVSiIMMo7aQ*cbt z;y>=EPrTLqi(3vj`PKmayP~CoQ;L=%I<07Ff5uOrRkXA}=cmv6G|#^TT<{s>dxiM( zIYmnmT~f5v$Yn*#iRg-=#h;>RsiA9%mKwUAs^$8Zo_FbuR0C@%qMM4ABD$q$DWcno zmJ`t(MN19cRkYO5pNf_mx@T%!f2D}-D*;kO4-_o}e5hzCqDP9B8hWhgdz{1*MN17m zRkYO5Gq1+>F$I4q0sXmy=Zcmo`rA*xP_#_hKYse9qNV-6ik2FB1ugr67wO7{509#p18!XDO%cF6fHFrplGQPtLW70zZ6lRUqFzerHCAgmLf{0Xqh6XqNRph zik2EmuV|^E46J?Ee<`AjN`MqmCPhmTWmdH8xGaj68u~!dQbSo4EdvZzwA4^Gn{xe^ zA_`Fg?s3N16)i=SL(x)1ITbBakW111S?5-?`1APbyf)?fFLM^E1c(k(v~-Y9(NaYD z6)o`v{B%J@OZ#v?UC8Zch)}e2SXj|gL`4)WMO0MLQbWZQE&k$)mKrLlXsIE0Da9aj zR9eweL}e5$MO0SNQbgqxEj3hL(NaSd6fHGWQPEsOZmOghq=+gjT8gNOqGf`)Po!dyIjW`T{;X>&TKskVbX`Tul-2Xo^%X7c8z}mB zIsY|O4AQ|ze)?lYO9zeobYnl=MA6b;Q$kRocKXz@oWT8gN(qNRwU z6)jWLM$uA3Z51sw^vPT8CMlwrw+50T`c%r@1Y2VvVf2C+?|Fx-Q`xrnUzkt4qmJa(VT8ii!MN5tJSG3g7 z07Z-cTSZF^eec!SK1mS`QUYX-eo(X&(O^YO5vgZRsUeTzml_(PXsMy0ik2E025nyd zW%Z*H(2I4vqNRw2D_RCPLeWw~BNZ(*G)mF;IOEZZmKqu(I`#T5MKo3kkU1KsXepxc ziWdI_KRr>=GGz&VdXl20z0TTq{g)z|tOQ60Q~dN)MN0>UpPuHYrz=|eo1ti_p_%IS zUy5Xw5+Fr1ThZd5qi89jdA6qSe9$;w(K1B~6fHHhP|;FDi)`+<9Y_%^Rsy7mmMB_^ zC`r*$L`xMdHMC68QbWrXEj6@4(K5i5Zp9!)v`W!ZM5`5jk27AQXepwf6fHHhR?#v= z>l7_D^s}PH?_Td`*q~^cvyFawlcJ@A&5D*9`bE*w{#QS}MbX^eO+%J%j{t=1fWR?%Ox|AM0JQZ$!sLwy^(&m;Up(c4*HSF{w-Ek(;8iQKit``SzV zeLww3(fpU5^i&!06*mrhK#&xsbxaCEIMt)5iD_Z4g=@x!E>aEU#Hyv8OHIQAeGq~q!1`U^!%_C5S`PgUzD6IbVxUcObVq6ey4Uofwv)>=O~ zZ#TE_A43;rJz3G;v!22_r|IYS z&-qh3#ZZ6)rrBrt0zTwJe5QS#Pyfz(j(xFDKjZj$_T@hP8T%L7*Z6d6jW4|R^*;R( z>t*&|e7d5XwO9HzSYzMr3y|;QS*Pd})*I}*eg0ysHz_)R&(d3z4a$6NQ?y*^cPRY@ z$=?C)Rsv?R-m3(B&ia6&<+5^E4_UM_ecsXXHTtq>R9HX0C?v<13b*Myqv;kMsS%?X%#Hrvo7`FeX~bQZKm_t4HkKqM=Zr>$~T+8GLlV&-F)%^Z)aLw?2&H-l_d_?0my&; z`yexXwq^y=}d-bA8xpNNM&yRhuehKUi)adShJuWF*j!Xynp$w+}zyYRvsXieo z#C`3Me6zDGgH8MM!~DzyKE$*vKO$dbEX$9krSDPs0$^E2n3h7v_`wF83z-*P5#{vV5jm-XDsa%&y*%FFV& zH>L2eR1nL%nU}r5eZY2sbNF?#x%^7lJbn#qF~9n?fZz67#BX@b=eN2R@|#>s`0cGE zeq(DnzooT|-^^M;vjSK03s|f8rK{EaqSYFHxoR!HQ1uhPG_{`Jllq0V*Pn+EQvePzx!Rc3isp)5a4`~;_d$gb5H#)%Y7#-x-iVpLuL`V4bp`-lD&@p~Z z=s3R`bb?<8I>oO5o#wZG&hVQ)=O}B?1%6}aBEO}R!f)nW;+JtQ^9wjv_-6KZ%YNHA z%OTro%Te1I%L&_A%PHGY>si}z>jm2}>t&n!l=TnWY3p^{@77zklh(VoOV<0gi`GZB z^VX-f3)bhhv(|rX=d7=6Db_c(D^`pB4{Mt$FN!TBq49fivyaz&ZAyzPt=|zaGgCX=Wovz zxXqqDaECo-;BI^Fz`gdofd}kifrst+10#460;vq25rhR%OFkbAv&z4*%D^^x@!m=< zW&wf1(lHwbW*0A55VLDwR*4IeI195nVEl!lKli0utF{|SeTR~=>G6*ZoYyntN@n#fTab_u* zIe!}^^U-;Ysg+8xk+Mjhm)I7-%t|H1##a~{73JeM%*W!ucCalOY*~Vr*=eK69JHNT z3cLqQW~bjx=Aetr!rWP<>!o})2xDfa6()1gI%bjZZZesj4w}qCe>01N_l?Qy6r_7? z4oc6=18=a&?3B}F4l2Mb5#GW&Us8nHshVkYP-AAvaJMm;ojRJ#LA{x!!26xa>@>n; z4jRvl-;d>#rkc!73r*&r<;*IuH-Pq*;N&FEO`|7!shtu`=AdcJq7nF4NzMr!N}Mn| zC7R4ZOPKXXT)NVnu`f=TomR6~n1ePjn~JzE%W}fLxJ3E4Vs_fbZZSG&53^*r51Y(R zXHDjy>&#N%y=yW%{be!-*{5*seCJ`K3?{QvZj(8v2(vJFE1Jws(Np-6Dn?P4xZ{|c8WKdgC;Udgm;R`9F)W?1-5-Av(sslIVgo0zx2yPbw4nv zonDyCL2sBv!kyLdGCPHu%t6JO#lc&~WOk}-G6zL6^T6BCWOiy{G6#LaED_$$UM6pG z_ce_U8q6#i?y)Ab(=3xYXfZRsPv=q3*xWK6H+2r3fqJ^=r*%tum{Xi z;C*T`2fbz%mP>{(XSSEwX{*T`w2xUFd-?n~obNq_+Q~4PgXS{xpz(5(*=du>9F)u~ z5#EC)v(pKaIp`d-WS>`3aWS&JJwyGVZ#m*b;x@l$r_KzLsrZoqlFpbFtYrunp|;Mn3-IT8MG>CN}z5 zT$I?_{=zn}bX#~MEyea|EAN>Y8A9RhUgn@O%#vYyZ88UCNanV%}*v5hpDgC;NwgKe_O z9JGd69Bf}4@iGVXW9FH``P*n9sB}1tS)#W?lR0P%vt+h8NXm?6N{i5=Ugn?(W?`^> zXfg*?WflorEt7fM#=%yPZNd=eCJ$&!HYWO53IeaPO_+DA{2#k`!}r)G%t6nYg~9f( z$sD8|!Zwv{!uSlqEY4>W=CyfXo5x;eZZ;+{O=Kei+ubG_0BuZlg8ODk^BcU zwiRX;3EN1n0AUWA&o+<5ggNL_wk7-GggIz{ z^uo_keE!2&nL20&8zY(7sQ4dV=Ad%SQuvX|MyHsC@hQeeVOQA;R*RYZ;~5)8U-L32 z)bV1EHhdqwj`4|X`;zoG?!T%yfHVt%t?hz z=Aw_7CBu8gWKLRdG8Y|T7PeY?K7Z58oHYEV+e=-vl#L#^2j22BCsj0=i<&b_fp?F| zoV3zpF51E@a*cG|`nH!jDVNDyRE}99yy17e%t;qao6Akln8vM@#&g*%%t_yv%thmw zCBvKdu9rFKnQ3!TdbWkFleS|_=A=F*^JeUU*YPK(#LP)o*elFMFPNpQ1mkb*{GntbPnao8Om?gry3cO83$Icbc^Tr`7O3cM{Idzq7h zP3EFX%p&~v&3J;oBZ6%oRr^W zE^5Y%wum>+-(KdV49wzSyI?XWjWd~xeqojj@6Z=={$uK-`b>qn=yPUaTcyJklR0Uh z$y{`XnFrqX|9F{`ikr+u^_Zo=tDDS8KQfElCjF&<>1AB~rp-mq+)NYU?!s=ovu!6tLjJZ6!*r0v}| zUdCQwZZ@);X(HT1NCR{7e;@KPJ`|bJZfR_hU-B|@(pl5yqQ}hQ;GM)?VNPmqG8YYD zmdul8qks5&0EO|OP3EGr#rZdmVLSyk>cw9HD9lNXOy;7_%slY6BTvU=- z3cN>5#s{j&T(pN-Bu|iy;!Ap&lUkU}Mg5p1iq}mI_;-v#o%EM!bWsNRy(3SCjcoEg zfXtk<$h5g=8#9?n8+Bx_FelYEnTuL5ONMuq$(%IRWG-67EQ}|TFG*l-X?%&P2gWA+ z$9KY<6mBv;e=|#gca_Qb!eKK0;xA^AJont8$+$mei9VY!z8=Vz4008CH!RFat;_Pa zT?*x0&F(n3Pne7=-DEEMiCHqdHTahe!km=NWG)J47RD81BWWwlNk5o2Z(9$%2iYdf zNn1?j;=f{(OyEX#a9jC13dQE4512)Af!Sz~$($5xG8gq=mI&`|lko-DWZwNonzU^y zzn5m_q=F{ndjn>18s~4$BHW|AM&2-H5shVzli}UPUSVEum_@pF@i!a_bJBn873TGN z;Qfxh!kqN6$z1davlO4#E!0VyO{0tUF^de4t}9paGAHFQnTrZDOZ0h#IjOH{bJ0+V z%OY)K`4{6Ju!+p*1F<>f+vk`$>6~eE(Gxe*IJg(GTbPr+GMS5XX36lrF&SUMO~#iM zW?@;S>s|bvb;6u9&}1%}#LNS4ftp^%7c7&xC?~TN_VWE-Pm?;SmC0PxiCJW@be&)_ zCyiy62%B^$%t^;h=IxNONsGLZoF_9U1)0o6!OY^|m6NeBCp8eSJ4BkeYB6Qzq)lRE z#nAIY2)+;r>a;c9?*xKY8VidkU>9ks*ct|&vLqwHbrlAy0$gpNWw`y;dDhNld|fE zPFEGuOn07X5HNnybiMVNM%GDZC#C2M&r}VF(2MI=&$J2bqW9B(&}*D+5~T0Y59+_` z31_QII9uCGTkAQ`RrAu>dh9tf;EF!`TxD3Ngy|Q}fGMBpdCz;BO_`^6Js;@} zxTCK)Uj=k(N&VjW=z!i+ztihoXvOP&`m75d1@tyT_1hPsc-=# zmQlZcu@kSm=^tO}$?L=V=1c6KUQM@OX8-gtdfer9yuPL#nPnc|AdIcvbX4edty8&k59%uh!so9bLOtp4UI>m9JId^%lMVwMxAHNB`+s z*?^F_<@8(PpZkR#dY$ca=j$=otMU4hKK**lfRM!8`i1MYc->wPy}|t^&ez-BD97s* zee#XE0U`53^b0pQeqMV$=S|-JyxDrIo4lQQXY_=d)dNE2XVs72$G6}E{rD~JcR?#X<89HC^yarCd3{pXZ*%;@Z2Ga=Jg$W;b>|)KXW@9g z$sOL#!ejb~JM3SSPTzfp^Iz0p(%lNY8m3piD{_ne&0XHiq8Ix5yWIWaO8Qf*`|G9u zWdGuy^|oTI#m@ zm96^0q|tia`?ZAZ)kod0%4Dfa-*>-C5hjho<{ddXZo$Bz4n7@LiXrGAJk;BEKuL`puUiXdd7#aOwyws z%2t=1(kDEu8IWapcK!In>b!2HXMR+P*OT?ek81P!sGjhM{VTHSCm&Vib+n%Oah1Ty zW4o=GrZ<0FJ#g~4FISw@Cp~T$IC(;$mBIRz$JM|(>S0efj%^F{&z{r)yQ(jF!rp|S zRYmpNPg>i0tm?h$n^l9>)qNVFdBy6<>-s$7e|Z4UnjK*qvX*aGA*s>yQPVD64f=9k zuFhFHZfg5%OSbrV&Ep5GYw>VskbFPZO1)8!4_aj1`}dGRBjy#WcXP`0&&%}6-0|m$ z^%Ap(Ix}xB+qY}>X(J9@)YhGR*)TraulC>z^G`>&IbE*#iG`z{?W#0k)01M~>ZeQX zuq8adc=(4`58V%6AN?cm)I}xBt<5oYQMTrucIU}f?Z;ZbRym)${+8__&-?3tH=9(y zSe2LAtJnNE=fkU0{^~u!*gIp#{+Dsx$`8KOwEe2x7v|ooJG_&%X-b#+hrZ5T@%M4- zTdZp|@p1j?_txu&yFEVL;o|N3t7i;b^4YG}U4Orq@$QHY-9Eg0rAhy7nfNAP#O!OK z|D8&@kfG|h+b8?H>i>P?f7^dHrecPsd1jw4cwoo=nUB8xbL^l;L*sTG8PR?9Uk9I9 z{vFY|m^I@%vEJ;PQF}cTgD9?Pu)x!z4W_P5AROf z{MbJ1+6SYKPL6F*ahzvUc%z#eGPVzHm2u77ImY_@zq#iuwPr7I*#1k{(QI|6PwiZ9 zLA_chKHt4G-G>dUCCw_hf8wpKC9cf<_GQK1jUV4zas7P8gqDpSADm*_v*^j2Oi?)& zRytG5G4@XBF^dBSBtMPFSM8tPof}UmQuUWV&lM=S@1^tM=*35dF1yud{^Bvs_dU%& z_tw0`hA~YetJE&D#6I$j^VPF5M@tM`l`ZK-?k-!pbaWp1`puQ~xxTU8>ANgyYqn`q z>tFh-u`9gIuzDGDRH!uV3n5(P`Nw?|=!I;;TknD{V$v?}bqhj7F`sF=<_?6Yuc2 zCq82sH;^GAP#}asDc1y7sHSDrhGfnYn#X7zt$F?@gGhMuf7$+|>@u7LOQ;rP)ikZ5 z#k#Ro8?Bx8KN*F7mN%x~|Gx}{|9zAUB}n#1o{gnG;Zw~2WE4~O%P3?hQ*Qr%3}s{J zr`k-dOBz?Qw*=(uWLy?_%`ob!5!z0>{69%}dJt~_36IImYR(@y;b@7qWLGv8X^F^K^>G{QOqj{XR zB(3)m1~Dr$Z+cc4*}h~wt2Tr8jPoEs^Q;c8#-BFib?~ca7Q4~EgVz3w|4B`}y^6{H zpDhzL>WERJqt-jElg6p(|K+TNEekxz#K&VbZDa9H+EFd7&$|h4jK*EGHfh~$;_;2o zx@ZRj(z@SK2^%wgp@llq`qGwoT=w)EBfhWJA+7sf^_cr!oqc1qe%cHzt*h319g|vJ zBS($7Es_5kk^Qx;X*~g)N7Dh?rF3b1M*ctL!6{4}s$EU%`M}9|+t0?nVOq=o$wBRR zw)Z>5@;N@4wzp;A^PE*KKE|9MwS{TDLvf+OH3m23$#PSkJjhrQuZ>LWniv(m(KB58 z)RN}?Hr!Zz6hG*sb-#N~7!O8k+0(kNP{Q1I>=^BP);nCkZ`>NMol5H+j+@6(4UH@lwK{3tHx3`}d-+7|#{c9bfek26CU_{3 z$LB*c1eVF+D#z@hW7&<2lQg||8sF}C&kw#wAv}c~KAE~zJ}G6^wfbqDIX3Ej{P1mA z-KfobxA{DfZ#_M0(`&|QUHj;NG6?U3hYUj9zQeoy{du~Z>_DDgR%6a&Eu*n*vQ{Xq zN8)#(@IDsEm~f4FJFq<`*k-&=XLOpP)lTa{U{1XEp_mh?LH|vAACl5z?-&KAYIU^! zM)#>&d|HnM_r!0XlW=&TTrgd4&wse2amn)KbL^IlUm4nv0Byj=Co{A^()rcQ(j~o2_NjzBLBS*3PH(-a40&H|bYH z=Sr~+cO2)M$$)T1F;6DB%?FxupRwm$A93@4V%BKbcrEx_)M{cZV zl`-6jTKTlTL3>*z*b^8XUvP5F(~AB7k@?#>@ZNe$q2RQ`ne$<_y{)l#o>n2PFRNzK zM$7qHnY4ZsdRt`3?b0^R$gD5p;e0J5t@kRnhfSGV3Fh~jnxu2sNVAYe#VmGV1La^F zAs6p9Y4`~|wrw6k#>E9%)&EIyxHKR`oJZ6>%K3~sA|Fg-)jV^xp|y>v3$?TV<3S)_ zRI9ne<#vHj8z<#VVl7G=Ym{E1Ro2ECJ(g%+2Dc03 z^GiYgiEp=@@c@|dV2M^*8*hXqX`eXbR&r;D`6oWk_%TTB`F4c-^x)HuiYv$}fm3v$# zz4kZU%d~>pWMknnZC>!eava-A;s?&;UjqKhKk);NnC1NW{S;%>a;>3r&}ut>9|ix! z4>GhBS`}@oQEi1*Dm(supJsBG>2hnqTK*6&KKj^W7(cGiqFqC$@MzY`h=zt44_0W| zjn^x*oZ2)a$4YI8Gkz6&4vIJ4ShSLN;dJB1N*<+tfxCMlqtuO>t9X<%jLxgrK6M1! z7K(kUv2B%BAj3@FmJNRsm7BCu#@DN~9EN?hRwVCqU!K!5Vpw@N($Xux=U=MhnPoIv z&ArXK%RR|?K7N+5bTw~fwsB-N&(vHa-x}UybBxAocu4b&v1_!#Y+S!a8yC80JI7y< zHjAe6KH4DrX;H2~{ySp+iC<)N_(?0HB^r}|;yF$#%W*9wHt9>=vtwlMCK(}XwOZOd z^~aFU1kCw{q6W1ZHE2eo3I zw!Q3T+3oUOGVz;z+uFRC`}weyTG z!HgbT_~X%4M$#6oUGU8#ocaSv|K@kxVurN3Y2@6hmC#ljA8plYV7fK?bJF4hsc*GZIXx(snPZl5n@E`;^XaCBYu~*DO*lC z&m0$f&K|tg(X!>74UJECYXyzoyEVJv-p!}2EygdqwOD5!ISC$dVaEJDS^;gF@!KA)O>lulY}+ID0`hM%D$8aH7-fFrmfMX_e$(pmYR+$3 z%b@N2>jBR=|?B(BtZ#R1H3-I@3d@im`;tFP00W%hcoJwOSSBDnL20kOfS&(@? zHM)orEt_hml}HUKCfh0?kh-n%N-(;s!iG?_yPEzHbrnO-{u>`3)G~)_$wt6qEnfT0 z81kAvwf(+qMjSu*91B`)=!$@8OUr&0QeHZkTBCwT3v!&iEI8t*y%z6~&HUraE!}!Hakr)D z8_#ZI!c%QX@QGm@wLl_I6z6^#OJ669@MnA&?lGD^)4DoO$;IrYM4U3VKjU{Jelr|@ zX`edJ$`KhQ_OnKBHfVc|gMVoi@?OAUD_>P4i>&Q9KZNpE`FQpjq0hAn*)Ahp`J)G~ zuN{ANhG)Ogfc|Klz$N*W%^${~eil{ustj5#Y~l?$tWxhska&r?-a#q-vZ zRpC%?NLVFN!TGAd7>-rRLNMkp>J2G|cJ9K(t4U1$539>6tOP>ym#G0&wkB5PU@TD{ zkp(KiSFj3<1*&?RSM&O+qn84;Fth@-vBA7`u%&`^vC3Buk)ic5iqIAfV9nnU*04rs z5!M*p&f+JI+4dJp00zryq=A-(Zgv>W}7y z2Jp(w-zW1eVhRmJOo8u^S-$VR;~nH3?++C*?7@|7JkUa(Vbx_F=J~OTtP6PJD|zk1 zp@Tgm;Lqn7S=Adis+O#Cdd8RY#!rC1sApoNTMPv~31}GMnS^ziM>jj3jKI8}DcC?s z&$Jp6pWidRnymABWQo&~kN{Vqg5xjjoNc;l1c5A!TVBBedcob|;~ z+OwQHnsUHWSi3yssimuS#fZ@?6|@v1LE}HV_`^unETy!o#$(M=(>YD&+F!*#Bc~Zv zEtUxFn$gK(=^Q+>8{3A9eWu*j%5B}qnZ`wnrGR#QYJjCe?m0Mu_)m(k$Xf0izT$tV z;kjW%1y}|<=S}108>EYQ#)SY&P3@-fht<*``$C*(TC;pHbRX=w&B#x-=^cEb=YRfVD66Xcxz$S7sw zUA^1rX0znc9vksCOXYlf`ET4vB1i5;qtCsKcv$&8>-m)V#JFO!RLyrlPDA-6>;S^z a&9E+f70SwCPmQW}9>!r~fZY -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs index 2a2b83e..f3c6637 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs @@ -1,23 +1,23 @@ -//------------------------------------------------------------------------------ -// -// 此代码由工具生成。 -// 运行时版本:4.0.30319.42000 -// -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("IMTest")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+dc6ecf224df4e8714171e8b5d23afaa90b3a1f81")] -[assembly: System.Reflection.AssemblyProductAttribute("IMTest")] -[assembly: System.Reflection.AssemblyTitleAttribute("IMTest")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// 由 MSBuild WriteCodeFragment 类生成。 - +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("IMTest")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+77db20dc38eb89685ca73df4dd2758aa53aa6e0b")] +[assembly: System.Reflection.AssemblyProductAttribute("IMTest")] +[assembly: System.Reflection.AssemblyTitleAttribute("IMTest")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache index 3735720..e14a840 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache @@ -1 +1 @@ -1b9e709aa84e0b4f6260cd10cf25bfc3a30c60e75a3966fc7d4cdf489eae898b +6b62c789b9e1ecffdd986072b0521abee258fac28aa7e7d48b26a0309d21dc29 diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.GeneratedMSBuildEditorConfig.editorconfig b/backend/IMTest/obj/Debug/net8.0/IMTest.GeneratedMSBuildEditorConfig.editorconfig index aa41851..37e4797 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.GeneratedMSBuildEditorConfig.editorconfig +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.GeneratedMSBuildEditorConfig.editorconfig @@ -1,15 +1,15 @@ -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 = IMTest -build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\IMTest\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.EffectiveAnalysisLevelStyle = 8.0 -build_property.EnableCodeStyleSeverity = +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 = IMTest +build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\IMTest\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.GlobalUsings.g.cs b/backend/IMTest/obj/Debug/net8.0/IMTest.GlobalUsings.g.cs index 2cd3d38..408e98b 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.GlobalUsings.g.cs +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.GlobalUsings.g.cs @@ -1,9 +1,9 @@ -// -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; -global using global::Xunit; +// +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; +global using global::Xunit; diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.AssemblyReference.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.AssemblyReference.cache index 278b1a786b288cfeaea67d744fcd32014102ffaf..6fde85c380297df4deea819b157ef37484f20298 100644 GIT binary patch delta 19 ZcmbPmnrQ+Mg|KZ1txOls+8AZF6aZ192k`&^ delta 19 ZcmbPmnrQ+Mg|OKcpJunt+!$rH6aY^42eAME diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache index c05b415..84fb056 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -6e6df2b3d9fe8d3830882bef146134864f65ca58bc5ea4bac684eaec55cfd628 +6e6df2b3d9fe8d3830882bef146134864f65ca58bc5ea4bac684eaec55cfd628 diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.FileListAbsolute.txt b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.FileListAbsolute.txt index 6a24730..ca734f9 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.FileListAbsolute.txt +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.FileListAbsolute.txt @@ -1,153 +1,153 @@ -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\CoverletSourceRootsMapping_IMTest -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\testhost.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.deps.json -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.runtimeconfig.json -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\appsettings.Development.json -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\appsettings.json -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.staticwebassets.endpoints.json -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.exe -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\testhost.exe -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.runner.reporters.netcoreapp10.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.runner.utility.netcoreapp10.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.deps.json -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.runtimeconfig.json -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.pdb -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\AutoMapper.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\AutoMapper.Extensions.Microsoft.DependencyInjection.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Castle.Core.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.AspNetCore.Authentication.JwtBearer.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.InMemory.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Relational.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Caching.Memory.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Diagnostics.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Hosting.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Logging.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Logging.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.ObjectPool.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Options.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.JsonWebTokens.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Logging.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Protocols.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Tokens.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.OpenApi.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Moq.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MySqlConnector.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Newtonsoft.Json.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\NuGet.Frameworks.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Pipelines.Sockets.Unofficial.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Pomelo.EntityFrameworkCore.MySql.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\StackExchange.Redis.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Swashbuckle.AspNetCore.Swagger.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerGen.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerUI.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\System.IdentityModel.Tokens.Jwt.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\System.Net.WebSockets.WebSocketProtocol.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.assert.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.core.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.execution.dotnet.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.pdb -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.csproj.AssemblyReference.cache -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.GeneratedMSBuildEditorConfig.editorconfig -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.AssemblyInfoInputs.cache -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.AssemblyInfo.cs -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.csproj.CoreCompileInputs.cache -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.csproj.Up2Date -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\refint\IMTest.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.pdb -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.genruntimeconfig.cache -C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\ref\IMTest.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MassTransit.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MassTransit.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MassTransit.RabbitMqTransport.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\RabbitMQ.Client.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Bcl.AsyncInterfaces.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\RedLockNet.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\RedLockNet.SERedis.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Caching.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Caching.StackExchangeRedis.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\System.Diagnostics.DiagnosticSource.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\CoverletSourceRootsMapping_IMTest +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\testhost.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.deps.json +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.runtimeconfig.json +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\appsettings.Development.json +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\appsettings.json +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.staticwebassets.endpoints.json +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.exe +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\testhost.exe +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.runner.reporters.netcoreapp10.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.runner.utility.netcoreapp10.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.deps.json +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.runtimeconfig.json +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IMTest.pdb +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\AutoMapper.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\AutoMapper.Extensions.Microsoft.DependencyInjection.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Castle.Core.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.AspNetCore.Authentication.JwtBearer.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.InMemory.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.EntityFrameworkCore.Relational.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Caching.Memory.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Diagnostics.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Hosting.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Logging.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Logging.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.ObjectPool.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Options.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.JsonWebTokens.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Logging.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Protocols.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.IdentityModel.Tokens.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.OpenApi.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.CoreUtilities.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.PlatformAbstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.CommunicationUtilities.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.CrossPlatEngine.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.TestPlatform.Utilities.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.VisualStudio.TestPlatform.Common.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Moq.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MySqlConnector.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Newtonsoft.Json.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\NuGet.Frameworks.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Pipelines.Sockets.Unofficial.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Pomelo.EntityFrameworkCore.MySql.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\StackExchange.Redis.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Swashbuckle.AspNetCore.Swagger.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerGen.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Swashbuckle.AspNetCore.SwaggerUI.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\System.IdentityModel.Tokens.Jwt.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\System.Net.WebSockets.WebSocketProtocol.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.assert.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.core.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\xunit.execution.dotnet.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CoreUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\cs\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\de\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\es\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\fr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\it\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ja\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ko\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pl\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\pt-BR\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\ru\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\tr\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hans\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\IM_API.pdb +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.csproj.AssemblyReference.cache +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.AssemblyInfoInputs.cache +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.AssemblyInfo.cs +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.csproj.CoreCompileInputs.cache +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.csproj.Up2Date +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\refint\IMTest.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.pdb +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\IMTest.genruntimeconfig.cache +C:\Users\nanxun\Documents\IM\backend\IMTest\obj\Debug\net8.0\ref\IMTest.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MassTransit.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MassTransit.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\MassTransit.RabbitMqTransport.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\RabbitMQ.Client.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Bcl.AsyncInterfaces.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\RedLockNet.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\RedLockNet.SERedis.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Caching.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Caching.StackExchangeRedis.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\Microsoft.Extensions.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\IMTest\bin\Debug\net8.0\System.Diagnostics.DiagnosticSource.dll diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.dll b/backend/IMTest/obj/Debug/net8.0/IMTest.dll index a0cda451d694d4817c2e18d6b5bc96d87896a846..1b81499223a53415631995671a2f195b2d02497b 100644 GIT binary patch delta 248 zcmZp8!PM}AX+j6fk|6ej8+%kH3NX9AemTcZ+jZtt@y>;!^KWcEFj1dh&)hsE$;coj z+1MgA$->gi!ZbP2+&Cr8Bqhbj+|(j5(bPCG(Ja*d({zB!=4hs`FS$_WA ze_-;GRRID&6YHjT3uO4V-&s_5-B`+0VYKPf>BtEPBid#Hw;mm`Z z%UAa@`Wz}vzFj1dhFD2P5H95`5 z$Rs7rB-O&)(8SQ(Fx4W-G{wj`F)cCC(jdt=(J;-zkb%L6k->d({zB!=4hs`FS<3%* zbx&ThDnOvS`^eXXic*I@5r+1nH@gcbv#btQfC=(J1%ax$_XhB3oL%hb)Anha^XBr^ zz0Ce849N^;45>gejll>AO&C&uEEAxJ1%o+*A&_MVra}B922-G{5rZ*9B2Y~t5Lz-A T07XH3L!gKSgW=}j^=nxG4c<}4 diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.genruntimeconfig.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.genruntimeconfig.cache index 8186f4b..324d76e 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.genruntimeconfig.cache +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.genruntimeconfig.cache @@ -1 +1 @@ -07435f2bd36dc0ae41e1e828c20bdeff31b846af84ec0e9fed50b185c0440047 +07435f2bd36dc0ae41e1e828c20bdeff31b846af84ec0e9fed50b185c0440047 diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.pdb b/backend/IMTest/obj/Debug/net8.0/IMTest.pdb index f9575cb588d2903cee52a899df39729d98feb674..a5be6bbae4308fcb3168f5adf72d56530f868217 100644 GIT binary patch delta 148 zcmV;F0Biru{sGMX0g!wY`C)#Six6l{huorm*G(hG`Tf7Zv5>YCAR!F^%uiXfFBszu zIU`D!%K_a7zVfj&@*uJO#~#*F&a-9|TLCF;bMurWBZHJ=V~f-z3rjN#)8s^RYCAYMfV>jWZLcv CdO-^S diff --git a/backend/IMTest/obj/Debug/net8.0/ref/IMTest.dll b/backend/IMTest/obj/Debug/net8.0/ref/IMTest.dll index 9f9bfd6f5c96c086d905c0d5a55ab32804d543c7..c0c947677422567112e61491a8cdcfde53822bf3 100644 GIT binary patch delta 197 zcmZqZVQlDOoY29t7{l{?GbU8&m3w zVKbwKxp_*GkwHqbu|;Zy{uaY~v=N{W%WsYPOqfHQ^uMD@8dTMvb<;9{GauyHm1}U z!)8W}lw`Bi7{l{?GbU8&m3w zVKbwKxp_*GkwHqbu|;Zy{uaY~v=N{W%WsYPOqfHQ^uMD@8dTMvb<;9{GauyHm1}U z!)8W}lw`Bi - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - $(UserProfile)\.nuget\packages\ - C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages - PackageReference - 6.14.1 - - - - - - - - - - - - - - - C:\Users\nanxun\.nuget\packages\xunit.analyzers\1.4.0 - C:\Users\nanxun\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5 - C:\Users\nanxun\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.22.1 - + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.14.1 + + + + + + + + + + + + + + + C:\Users\nanxun\.nuget\packages\xunit.analyzers\1.4.0 + C:\Users\nanxun\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5 + C:\Users\nanxun\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.22.1 + \ No newline at end of file diff --git a/backend/IMTest/obj/IMTest.csproj.nuget.g.targets b/backend/IMTest/obj/IMTest.csproj.nuget.g.targets index 6d8161d..41b09e9 100644 --- a/backend/IMTest/obj/IMTest.csproj.nuget.g.targets +++ b/backend/IMTest/obj/IMTest.csproj.nuget.g.targets @@ -1,11 +1,11 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/backend/IMTest/obj/project.assets.json b/backend/IMTest/obj/project.assets.json index 4e1d539..327ac33 100644 --- a/backend/IMTest/obj/project.assets.json +++ b/backend/IMTest/obj/project.assets.json @@ -1,8969 +1,8969 @@ -{ - "version": 3, - "targets": { - "net8.0": { - "AutoMapper/12.0.1": { - "type": "package", - "dependencies": { - "Microsoft.CSharp": "4.7.0" - }, - "compile": { - "lib/netstandard2.1/AutoMapper.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/AutoMapper.dll": { - "related": ".xml" - } - } - }, - "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { - "type": "package", - "dependencies": { - "AutoMapper": "12.0.0", - "Microsoft.Extensions.Options": "6.0.0" - }, - "compile": { - "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": {} - }, - "runtime": { - "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": {} - } - }, - "Castle.Core/5.1.1": { - "type": "package", - "dependencies": { - "System.Diagnostics.EventLog": "6.0.0" - }, - "compile": { - "lib/net6.0/Castle.Core.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net6.0/Castle.Core.dll": { - "related": ".xml" - } - } - }, - "coverlet.collector/6.0.0": { - "type": "package", - "build": { - "build/netstandard1.0/coverlet.collector.targets": {} - } - }, - "MassTransit/8.5.5": { - "type": "package", - "dependencies": { - "MassTransit.Abstractions": "8.5.5", - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", - "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", - "Microsoft.Extensions.Logging.Abstractions": "8.0.0", - "Microsoft.Extensions.Options": "8.0.0" - }, - "compile": { - "lib/net8.0/MassTransit.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/MassTransit.dll": { - "related": ".xml" - } - } - }, - "MassTransit.Abstractions/8.5.5": { - "type": "package", - "compile": { - "lib/net8.0/MassTransit.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/MassTransit.Abstractions.dll": { - "related": ".xml" - } - } - }, - "MassTransit.RabbitMQ/8.5.5": { - "type": "package", - "dependencies": { - "MassTransit": "8.5.5", - "RabbitMQ.Client": "7.1.2" - }, - "compile": { - "lib/net8.0/MassTransit.RabbitMqTransport.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/MassTransit.RabbitMqTransport.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.Logging.Abstractions": "8.0.2", - "Microsoft.Extensions.Options": "8.0.2" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" - }, - "compile": { - "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { - "related": ".xml" - } - }, - "frameworkReferences": [ - "Microsoft.AspNetCore.App" - ] - }, - "Microsoft.AspNetCore.Authorization/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "8.0.2", - "Microsoft.Extensions.Options": "8.0.2" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Authentication.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Authorization": "2.3.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "System.IO.Pipelines": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.1" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.AspNetCore.WebUtilities": "2.3.0", - "Microsoft.Extensions.ObjectPool": "8.0.11", - "Microsoft.Extensions.Options": "8.0.2", - "Microsoft.Net.Http.Headers": "2.3.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Features": "2.3.0", - "System.Text.Encodings.Web": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections/1.2.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Authorization.Policy": "2.3.0", - "Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0", - "Microsoft.AspNetCore.Http": "2.3.0", - "Microsoft.AspNetCore.Http.Connections.Common": "1.2.0", - "Microsoft.AspNetCore.Routing": "2.3.0", - "Microsoft.AspNetCore.WebSockets": "2.3.0", - "Newtonsoft.Json": "11.0.2", - "System.Net.WebSockets.WebSocketProtocol": "5.1.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", - "Newtonsoft.Json": "11.0.2", - "System.Buffers": "4.6.0", - "System.IO.Pipelines": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Extensions/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Microsoft.Net.Http.Headers": "2.3.0", - "System.Buffers": "4.6.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Features/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Routing/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Extensions": "2.3.0", - "Microsoft.AspNetCore.Routing.Abstractions": "2.3.0", - "Microsoft.Extensions.Logging.Abstractions": "8.0.2", - "Microsoft.Extensions.ObjectPool": "8.0.11", - "Microsoft.Extensions.Options": "8.0.2" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Abstractions": "2.3.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR/1.2.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Connections": "1.2.0", - "Microsoft.AspNetCore.SignalR.Core": "1.2.0", - "Microsoft.AspNetCore.WebSockets": "2.3.0", - "System.IO.Pipelines": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/1.2.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", - "Microsoft.Extensions.Options": "8.0.2", - "Newtonsoft.Json": "11.0.2", - "System.Buffers": "4.6.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Core/1.2.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Authorization": "2.3.0", - "Microsoft.AspNetCore.SignalR.Common": "1.2.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "1.2.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", - "Microsoft.Extensions.Logging.Abstractions": "8.0.2", - "System.IO.Pipelines": "8.0.0", - "System.Reflection.Emit": "4.7.0", - "System.Threading.Channels": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "1.2.0", - "Newtonsoft.Json": "11.0.2", - "System.IO.Pipelines": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.WebSockets/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Extensions": "2.3.0", - "Microsoft.Extensions.Options": "8.0.2", - "System.Net.WebSockets.WebSocketProtocol": "5.1.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.WebUtilities/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.Net.Http.Headers": "2.3.0", - "System.Text.Encodings.Web": "8.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/1.1.0": { - "type": "package", - "compile": { - "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {} - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - } - }, - "Microsoft.CodeCoverage/17.8.0": { - "type": "package", - "compile": { - "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} - }, - "build": { - "build/netstandard2.0/Microsoft.CodeCoverage.props": {}, - "build/netstandard2.0/Microsoft.CodeCoverage.targets": {} - } - }, - "Microsoft.CSharp/4.7.0": { - "type": "package", - "compile": { - "ref/netcoreapp2.0/_._": {} - }, - "runtime": { - "lib/netcoreapp2.0/_._": {} - } - }, - "Microsoft.EntityFrameworkCore/8.0.22": { - "type": "package", - "dependencies": { - "Microsoft.EntityFrameworkCore.Abstractions": "8.0.22", - "Microsoft.EntityFrameworkCore.Analyzers": "8.0.22", - "Microsoft.Extensions.Caching.Memory": "8.0.1", - "Microsoft.Extensions.Logging": "8.0.1" - }, - "compile": { - "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} - } - }, - "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": { - "type": "package", - "compile": { - "lib/netstandard2.0/_._": {} - }, - "runtime": { - "lib/netstandard2.0/_._": {} - } - }, - "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { - "type": "package", - "dependencies": { - "Microsoft.EntityFrameworkCore": "8.0.22" - }, - "compile": { - "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll": { - "related": ".xml" - } - } - }, - "Microsoft.EntityFrameworkCore.Relational/8.0.13": { - "type": "package", - "dependencies": { - "Microsoft.EntityFrameworkCore": "8.0.13", - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.ApiDescription.Server/6.0.5": { - "type": "package", - "build": { - "build/_._": {} - }, - "buildMultiTargeting": { - "buildMultiTargeting/_._": {} - } - }, - "Microsoft.Extensions.Caching.Abstractions/10.0.2": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Caching.Memory/8.0.1": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "8.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", - "Microsoft.Extensions.Logging.Abstractions": "8.0.2", - "Microsoft.Extensions.Options": "8.0.2", - "Microsoft.Extensions.Primitives": "8.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "10.0.2", - "Microsoft.Extensions.Logging.Abstractions": "10.0.2", - "Microsoft.Extensions.Options": "10.0.2", - "StackExchange.Redis": "2.7.27" - }, - "compile": { - "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection/8.0.1": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", - "Microsoft.Extensions.Options": "8.0.2" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "8.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", - "Microsoft.Extensions.Logging.Abstractions": "8.0.0", - "Microsoft.Extensions.Options": "8.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", - "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Microsoft.Extensions.Logging.Abstractions": "8.0.2" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "Microsoft.Extensions.Logging/8.0.1": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "8.0.1", - "Microsoft.Extensions.Logging.Abstractions": "8.0.2", - "Microsoft.Extensions.Options": "8.0.2" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.2": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "System.Diagnostics.DiagnosticSource": "10.0.2" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} - } - }, - "Microsoft.Extensions.ObjectPool/8.0.11": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.Options/10.0.2": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", - "Microsoft.Extensions.Primitives": "10.0.2" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} - } - }, - "Microsoft.Extensions.Primitives/10.0.2": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.IdentityModel.Abstractions/8.14.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Logging/8.14.0": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Abstractions": "8.14.0" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Protocols/7.1.2": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Logging": "7.1.2", - "Microsoft.IdentityModel.Tokens": "7.1.2" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.Protocols": "7.1.2", - "System.IdentityModel.Tokens.Jwt": "7.1.2" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { - "related": ".xml" - } - } - }, - "Microsoft.IdentityModel.Tokens/8.14.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "8.0.0", - "Microsoft.IdentityModel.Logging": "8.14.0" - }, - "compile": { - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Net.Http.Headers/2.3.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0", - "System.Buffers": "4.6.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll": { - "related": ".xml" - } - } - }, - "Microsoft.NET.Test.Sdk/17.8.0": { - "type": "package", - "dependencies": { - "Microsoft.CodeCoverage": "17.8.0", - "Microsoft.TestPlatform.TestHost": "17.8.0" - }, - "compile": { - "lib/netcoreapp3.1/_._": {} - }, - "runtime": { - "lib/netcoreapp3.1/_._": {} - }, - "build": { - "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props": {}, - "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets": {} - }, - "buildMultiTargeting": { - "buildMultiTargeting/Microsoft.NET.Test.Sdk.props": {} - } - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "type": "package", - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "Microsoft.NETCore.Targets/1.1.0": { - "type": "package", - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "Microsoft.OpenApi/1.6.14": { - "type": "package", - "compile": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "related": ".pdb;.xml" - } - } - }, - "Microsoft.TestPlatform.ObjectModel/17.8.0": { - "type": "package", - "dependencies": { - "NuGet.Frameworks": "6.5.0", - "System.Reflection.Metadata": "1.6.0" - }, - "compile": { - "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} - }, - "resource": { - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { - "locale": "zh-Hant" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { - "locale": "zh-Hant" - } - } - }, - "Microsoft.TestPlatform.TestHost/17.8.0": { - "type": "package", - "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.8.0", - "Newtonsoft.Json": "13.0.1" - }, - "compile": { - "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, - "lib/netcoreapp3.1/testhost.dll": { - "related": ".deps.json" - } - }, - "runtime": { - "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, - "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, - "lib/netcoreapp3.1/testhost.dll": { - "related": ".deps.json" - } - }, - "resource": { - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "cs" - }, - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "de" - }, - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "es" - }, - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "fr" - }, - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "it" - }, - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "ja" - }, - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "ko" - }, - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "pl" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "pt-BR" - }, - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "ru" - }, - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "tr" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "zh-Hans" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { - "locale": "zh-Hant" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { - "locale": "zh-Hant" - }, - "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { - "locale": "zh-Hant" - } - }, - "build": { - "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props": {} - } - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { - "type": "package", - "build": { - "build/_._": {} - } - }, - "Microsoft.Win32.Primitives/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/Microsoft.Win32.Primitives.dll": { - "related": ".xml" - } - } - }, - "Moq/4.20.72": { - "type": "package", - "dependencies": { - "Castle.Core": "5.1.1" - }, - "compile": { - "lib/net6.0/Moq.dll": {} - }, - "runtime": { - "lib/net6.0/Moq.dll": {} - } - }, - "MySqlConnector/2.3.5": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "7.0.1" - }, - "compile": { - "lib/net8.0/MySqlConnector.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/MySqlConnector.dll": { - "related": ".xml" - } - } - }, - "NETStandard.Library/1.6.1": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.AppContext": "4.3.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Console": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.Compression.ZipFile": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Linq": "4.3.0", - "System.Linq.Expressions": "4.3.0", - "System.Net.Http": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Net.Sockets": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Timer": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0", - "System.Xml.XDocument": "4.3.0" - } - }, - "Newtonsoft.Json/13.0.4": { - "type": "package", - "compile": { - "lib/net6.0/Newtonsoft.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net6.0/Newtonsoft.Json.dll": { - "related": ".xml" - } - } - }, - "NuGet.Frameworks/6.5.0": { - "type": "package", - "compile": { - "lib/netstandard2.0/NuGet.Frameworks.dll": {} - }, - "runtime": { - "lib/netstandard2.0/NuGet.Frameworks.dll": {} - } - }, - "Pipelines.Sockets.Unofficial/2.2.8": { - "type": "package", - "dependencies": { - "System.IO.Pipelines": "5.0.1" - }, - "compile": { - "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { - "related": ".xml" - } - } - }, - "Pomelo.EntityFrameworkCore.MySql/8.0.3": { - "type": "package", - "dependencies": { - "Microsoft.EntityFrameworkCore.Relational": "[8.0.13, 8.0.999]", - "MySqlConnector": "2.3.5" - }, - "compile": { - "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { - "related": ".xml" - } - } - }, - "RabbitMQ.Client/7.1.2": { - "type": "package", - "dependencies": { - "System.IO.Pipelines": "8.0.0", - "System.Threading.RateLimiting": "8.0.0" - }, - "compile": { - "lib/net8.0/RabbitMQ.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/RabbitMQ.Client.dll": { - "related": ".xml" - } - } - }, - "RedLock.net/2.3.2": { - "type": "package", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.0", - "Microsoft.Extensions.Logging": "2.0.0", - "Microsoft.Extensions.Logging.Abstractions": "2.0.0", - "StackExchange.Redis": "2.0.513" - }, - "compile": { - "lib/netstandard2.0/RedLockNet.Abstractions.dll": {}, - "lib/netstandard2.0/RedLockNet.SERedis.dll": {} - }, - "runtime": { - "lib/netstandard2.0/RedLockNet.Abstractions.dll": {}, - "lib/netstandard2.0/RedLockNet.SERedis.dll": {} - } - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "debian.8-x64" - } - } - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "fedora.23-x64" - } - } - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "fedora.24-x64" - } - } - }, - "runtime.native.System/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - }, - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "runtime.native.System.IO.Compression/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - }, - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "runtime.native.System.Net.Http/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - }, - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "dependencies": { - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" - }, - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "dependencies": { - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "compile": { - "lib/netstandard1.0/_._": {} - }, - "runtime": { - "lib/netstandard1.0/_._": {} - } - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "opensuse.13.2-x64" - } - } - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "opensuse.42.1-x64" - } - } - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib": { - "assetType": "native", - "rid": "osx.10.10-x64" - } - } - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib": { - "assetType": "native", - "rid": "osx.10.10-x64" - } - } - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "rhel.7-x64" - } - } - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "ubuntu.14.04-x64" - } - } - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "ubuntu.16.04-x64" - } - } - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "runtimeTargets": { - "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { - "assetType": "native", - "rid": "ubuntu.16.10-x64" - } - } - }, - "StackExchange.Redis/2.9.32": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.Logging.Abstractions": "8.0.0", - "Pipelines.Sockets.Unofficial": "2.2.8" - }, - "compile": { - "lib/net8.0/StackExchange.Redis.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/StackExchange.Redis.dll": { - "related": ".xml" - } - } - }, - "Swashbuckle.AspNetCore/6.6.2": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.ApiDescription.Server": "6.0.5", - "Swashbuckle.AspNetCore.Swagger": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerGen": "6.6.2", - "Swashbuckle.AspNetCore.SwaggerUI": "6.6.2" - }, - "build": { - "build/_._": {} - } - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "type": "package", - "dependencies": { - "Microsoft.OpenApi": "1.6.14" - }, - "compile": { - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { - "related": ".pdb;.xml" - } - }, - "frameworkReferences": [ - "Microsoft.AspNetCore.App" - ] - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "type": "package", - "dependencies": { - "Swashbuckle.AspNetCore.Swagger": "6.6.2" - }, - "compile": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { - "related": ".pdb;.xml" - } - } - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "type": "package", - "compile": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { - "related": ".pdb;.xml" - } - }, - "frameworkReferences": [ - "Microsoft.AspNetCore.App" - ] - }, - "System.AppContext/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.6/System.AppContext.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.6/System.AppContext.dll": {} - } - }, - "System.Buffers/4.6.0": { - "type": "package", - "compile": { - "lib/netcoreapp2.1/_._": {} - }, - "runtime": { - "lib/netcoreapp2.1/_._": {} - } - }, - "System.Collections/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Collections.dll": { - "related": ".xml" - } - } - }, - "System.Collections.Concurrent/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Collections.Concurrent.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.Collections.Concurrent.dll": {} - } - }, - "System.Console/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Console.dll": { - "related": ".xml" - } - } - }, - "System.Diagnostics.Debug/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Diagnostics.Debug.dll": { - "related": ".xml" - } - } - }, - "System.Diagnostics.DiagnosticSource/10.0.2": { - "type": "package", - "compile": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Diagnostics.EventLog/6.0.0": { - "type": "package", - "compile": { - "lib/net6.0/System.Diagnostics.EventLog.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net6.0/System.Diagnostics.EventLog.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/netcoreapp3.1/_._": {} - }, - "runtimeTargets": { - "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.Messages.dll": { - "assetType": "runtime", - "rid": "win" - }, - "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Diagnostics.Tools/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Diagnostics.Tools.dll": { - "related": ".xml" - } - } - }, - "System.Diagnostics.Tracing/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.5/System.Diagnostics.Tracing.dll": { - "related": ".xml" - } - } - }, - "System.Globalization/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Globalization.dll": { - "related": ".xml" - } - } - }, - "System.Globalization.Calendars/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Globalization.Calendars.dll": { - "related": ".xml" - } - } - }, - "System.Globalization.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/_._": { - "related": ".xml" - } - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.IdentityModel.Tokens.Jwt/8.14.0": { - "type": "package", - "dependencies": { - "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", - "Microsoft.IdentityModel.Tokens": "8.14.0" - }, - "compile": { - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { - "related": ".xml" - } - } - }, - "System.IO/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.5/System.IO.dll": { - "related": ".xml" - } - } - }, - "System.IO.Compression/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Buffers": "4.3.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.IO.Compression": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.IO.Compression.dll": { - "related": ".xml" - } - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.IO.Compression.ZipFile/4.3.0": { - "type": "package", - "dependencies": { - "System.Buffers": "4.3.0", - "System.IO": "4.3.0", - "System.IO.Compression": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.IO.Compression.ZipFile.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.IO.Compression.ZipFile.dll": {} - } - }, - "System.IO.FileSystem/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.IO.FileSystem.dll": { - "related": ".xml" - } - } - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} - } - }, - "System.IO.Pipelines/8.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "System.Linq/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "compile": { - "ref/netstandard1.6/System.Linq.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.6/System.Linq.dll": {} - } - }, - "System.Linq.Expressions/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Linq": "4.3.0", - "System.ObjectModel": "4.3.0", - "System.Reflection": "4.3.0", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Emit.Lightweight": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Threading": "4.3.0" - }, - "compile": { - "ref/netstandard1.6/System.Linq.Expressions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.6/System.Linq.Expressions.dll": {} - } - }, - "System.Net.Http/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.DiagnosticSource": "4.3.0", - "System.Diagnostics.Tracing": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Extensions": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Security.Cryptography.X509Certificates": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Net.Http.dll": { - "related": ".xml" - } - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.3/System.Net.Http.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Net.Primitives/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Net.Primitives.dll": { - "related": ".xml" - } - } - }, - "System.Net.Sockets/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Net.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Net.Sockets.dll": { - "related": ".xml" - } - } - }, - "System.Net.WebSockets.WebSocketProtocol/5.1.0": { - "type": "package", - "compile": { - "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "System.ObjectModel/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.ObjectModel.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.ObjectModel.dll": {} - } - }, - "System.Reflection/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.5/System.Reflection.dll": { - "related": ".xml" - } - } - }, - "System.Reflection.Emit/4.7.0": { - "type": "package", - "compile": { - "ref/netcoreapp2.0/_._": {} - }, - "runtime": { - "lib/netcoreapp2.0/_._": {} - } - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "type": "package", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/_._": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} - } - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "type": "package", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Emit.ILGeneration": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/_._": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} - } - }, - "System.Reflection.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Reflection.Extensions.dll": { - "related": ".xml" - } - } - }, - "System.Reflection.Metadata/1.6.0": { - "type": "package", - "compile": { - "lib/netstandard2.0/System.Reflection.Metadata.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/System.Reflection.Metadata.dll": { - "related": ".xml" - } - } - }, - "System.Reflection.Primitives/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Reflection.Primitives.dll": { - "related": ".xml" - } - } - }, - "System.Reflection.TypeExtensions/4.3.0": { - "type": "package", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.5/_._": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} - } - }, - "System.Resources.ResourceManager/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Globalization": "4.3.0", - "System.Reflection": "4.3.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.0/System.Resources.ResourceManager.dll": { - "related": ".xml" - } - } - }, - "System.Runtime/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - }, - "compile": { - "ref/netstandard1.5/System.Runtime.dll": { - "related": ".xml" - } - } - }, - "System.Runtime.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.5/System.Runtime.Extensions.dll": { - "related": ".xml" - } - } - }, - "System.Runtime.Handles/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Runtime.Handles.dll": { - "related": ".xml" - } - } - }, - "System.Runtime.InteropServices/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Reflection": "4.3.0", - "System.Reflection.Primitives": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Handles": "4.3.0" - }, - "compile": { - "ref/netcoreapp1.1/System.Runtime.InteropServices.dll": {} - } - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "type": "package", - "dependencies": { - "System.Reflection": "4.3.0", - "System.Reflection.Extensions": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} - }, - "runtime": { - "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Runtime.Numerics/4.3.0": { - "type": "package", - "dependencies": { - "System.Globalization": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0" - }, - "compile": { - "ref/netstandard1.1/System.Runtime.Numerics.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.Runtime.Numerics.dll": {} - } - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.Apple": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "compile": { - "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll": {} - }, - "runtimeTargets": { - "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { - "assetType": "runtime", - "rid": "osx" - }, - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Security.Cryptography.Cng/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0" - }, - "compile": { - "ref/netstandard1.6/_._": {} - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Cng.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Security.Cryptography.Csp/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/_._": {} - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Collections.Concurrent": "4.3.0", - "System.Linq": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll": { - "related": ".xml" - } - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "compile": { - "ref/netstandard1.6/_._": {} - }, - "runtime": { - "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {} - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { - "assetType": "runtime", - "rid": "unix" - } - } - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "type": "package", - "dependencies": { - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} - }, - "runtime": { - "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} - } - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.Globalization.Calendars": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.Handles": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Runtime.Numerics": "4.3.0", - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Cng": "4.3.0", - "System.Security.Cryptography.Csp": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.OpenSsl": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "runtime.native.System": "4.3.0", - "runtime.native.System.Net.Http": "4.3.0", - "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" - }, - "compile": { - "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll": { - "related": ".xml" - } - }, - "runtimeTargets": { - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": { - "assetType": "runtime", - "rid": "unix" - }, - "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": { - "assetType": "runtime", - "rid": "win" - } - } - }, - "System.Text.Encoding/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Text.Encoding.dll": { - "related": ".xml" - } - } - }, - "System.Text.Encoding.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0", - "System.Text.Encoding": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Text.Encoding.Extensions.dll": { - "related": ".xml" - } - } - }, - "System.Text.Encodings.Web/8.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - }, - "runtimeTargets": { - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { - "assetType": "runtime", - "rid": "browser" - } - } - }, - "System.Text.RegularExpressions/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netcoreapp1.1/System.Text.RegularExpressions.dll": {} - }, - "runtime": { - "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} - } - }, - "System.Threading/4.3.0": { - "type": "package", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Threading.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.Threading.dll": {} - } - }, - "System.Threading.Channels/8.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "System.Threading.RateLimiting/8.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Threading.RateLimiting.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Threading.RateLimiting.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net6.0/_._": {} - } - }, - "System.Threading.Tasks/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Threading.Tasks.dll": { - "related": ".xml" - } - } - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Runtime": "4.3.0", - "System.Threading.Tasks": "4.3.0" - }, - "compile": { - "lib/netstandard1.0/_._": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll": { - "related": ".xml" - } - } - }, - "System.Threading.Timer/4.3.0": { - "type": "package", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0", - "System.Runtime": "4.3.0" - }, - "compile": { - "ref/netstandard1.2/System.Threading.Timer.dll": { - "related": ".xml" - } - } - }, - "System.Xml.ReaderWriter/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.IO.FileSystem": "4.3.0", - "System.IO.FileSystem.Primitives": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Text.Encoding.Extensions": "4.3.0", - "System.Text.RegularExpressions": "4.3.0", - "System.Threading.Tasks": "4.3.0", - "System.Threading.Tasks.Extensions": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Xml.ReaderWriter.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {} - } - }, - "System.Xml.XDocument/4.3.0": { - "type": "package", - "dependencies": { - "System.Collections": "4.3.0", - "System.Diagnostics.Debug": "4.3.0", - "System.Diagnostics.Tools": "4.3.0", - "System.Globalization": "4.3.0", - "System.IO": "4.3.0", - "System.Reflection": "4.3.0", - "System.Resources.ResourceManager": "4.3.0", - "System.Runtime": "4.3.0", - "System.Runtime.Extensions": "4.3.0", - "System.Text.Encoding": "4.3.0", - "System.Threading": "4.3.0", - "System.Xml.ReaderWriter": "4.3.0" - }, - "compile": { - "ref/netstandard1.3/System.Xml.XDocument.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.3/System.Xml.XDocument.dll": {} - } - }, - "xunit/2.5.3": { - "type": "package", - "dependencies": { - "xunit.analyzers": "1.4.0", - "xunit.assert": "2.5.3", - "xunit.core": "[2.5.3]" - } - }, - "xunit.abstractions/2.0.3": { - "type": "package", - "compile": { - "lib/netstandard2.0/xunit.abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/xunit.abstractions.dll": { - "related": ".xml" - } - } - }, - "xunit.analyzers/1.4.0": { - "type": "package" - }, - "xunit.assert/2.5.3": { - "type": "package", - "dependencies": { - "NETStandard.Library": "1.6.1" - }, - "compile": { - "lib/netstandard1.1/xunit.assert.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.1/xunit.assert.dll": { - "related": ".xml" - } - } - }, - "xunit.core/2.5.3": { - "type": "package", - "dependencies": { - "xunit.extensibility.core": "[2.5.3]", - "xunit.extensibility.execution": "[2.5.3]" - }, - "build": { - "build/xunit.core.props": {}, - "build/xunit.core.targets": {} - }, - "buildMultiTargeting": { - "buildMultiTargeting/xunit.core.props": {}, - "buildMultiTargeting/xunit.core.targets": {} - } - }, - "xunit.extensibility.core/2.5.3": { - "type": "package", - "dependencies": { - "NETStandard.Library": "1.6.1", - "xunit.abstractions": "2.0.3" - }, - "compile": { - "lib/netstandard1.1/xunit.core.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.1/xunit.core.dll": { - "related": ".xml" - } - } - }, - "xunit.extensibility.execution/2.5.3": { - "type": "package", - "dependencies": { - "NETStandard.Library": "1.6.1", - "xunit.extensibility.core": "[2.5.3]" - }, - "compile": { - "lib/netstandard1.1/xunit.execution.dotnet.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard1.1/xunit.execution.dotnet.dll": { - "related": ".xml" - } - } - }, - "xunit.runner.visualstudio/2.5.3": { - "type": "package", - "compile": { - "lib/net6.0/_._": {} - }, - "runtime": { - "lib/net6.0/_._": {} - }, - "build": { - "build/net6.0/xunit.runner.visualstudio.props": {} - } - }, - "IM_API/1.0.0": { - "type": "project", - "framework": ".NETCoreApp,Version=v8.0", - "dependencies": { - "AutoMapper": "12.0.1", - "AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.0", - "MassTransit.RabbitMQ": "8.5.5", - "Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.21", - "Microsoft.AspNetCore.SignalR": "1.2.0", - "Microsoft.Extensions.Caching.StackExchangeRedis": "10.0.2", - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.22.1", - "Newtonsoft.Json": "13.0.4", - "Pomelo.EntityFrameworkCore.MySql": "8.0.3", - "RedLock.net": "2.3.2", - "StackExchange.Redis": "2.9.32", - "Swashbuckle.AspNetCore": "6.6.2", - "System.IdentityModel.Tokens.Jwt": "8.14.0" - }, - "compile": { - "bin/placeholder/IM_API.dll": {} - }, - "runtime": { - "bin/placeholder/IM_API.dll": {} - }, - "frameworkReferences": [ - "Microsoft.AspNetCore.App" - ] - } - } - }, - "libraries": { - "AutoMapper/12.0.1": { - "sha512": "hvV62vl6Hp/WfQ24yzo3Co9+OPl8wH8hApwVtgWpiAynVJkUcs7xvehnSftawL8Pe8FrPffBRM3hwzLQqWDNjA==", - "type": "package", - "path": "automapper/12.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "automapper.12.0.1.nupkg.sha512", - "automapper.nuspec", - "icon.png", - "lib/netstandard2.1/AutoMapper.dll", - "lib/netstandard2.1/AutoMapper.xml" - ] - }, - "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { - "sha512": "XCJ4E3oKrbRl1qY9Mr+7uyC0xZj1+bqQjmQRWTiTKiVuuXTny+7YFWHi20tPjwkMukLbicN6yGlDy5PZ4wyi1w==", - "type": "package", - "path": "automapper.extensions.microsoft.dependencyinjection/12.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512", - "automapper.extensions.microsoft.dependencyinjection.nuspec", - "icon.png", - "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll" - ] - }, - "Castle.Core/5.1.1": { - "sha512": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", - "type": "package", - "path": "castle.core/5.1.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ASL - Apache Software Foundation License.txt", - "CHANGELOG.md", - "LICENSE", - "castle-logo.png", - "castle.core.5.1.1.nupkg.sha512", - "castle.core.nuspec", - "lib/net462/Castle.Core.dll", - "lib/net462/Castle.Core.xml", - "lib/net6.0/Castle.Core.dll", - "lib/net6.0/Castle.Core.xml", - "lib/netstandard2.0/Castle.Core.dll", - "lib/netstandard2.0/Castle.Core.xml", - "lib/netstandard2.1/Castle.Core.dll", - "lib/netstandard2.1/Castle.Core.xml", - "readme.txt" - ] - }, - "coverlet.collector/6.0.0": { - "sha512": "tW3lsNS+dAEII6YGUX/VMoJjBS1QvsxqJeqLaJXub08y1FSjasFPtQ4UBUsudE9PNrzLjooClMsPtY2cZLdXpQ==", - "type": "package", - "path": "coverlet.collector/6.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "build/netstandard1.0/Microsoft.Bcl.AsyncInterfaces.dll", - "build/netstandard1.0/Microsoft.CSharp.dll", - "build/netstandard1.0/Microsoft.DotNet.PlatformAbstractions.dll", - "build/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "build/netstandard1.0/Microsoft.Extensions.DependencyInjection.dll", - "build/netstandard1.0/Microsoft.Extensions.DependencyModel.dll", - "build/netstandard1.0/Microsoft.Extensions.FileSystemGlobbing.dll", - "build/netstandard1.0/Microsoft.TestPlatform.CoreUtilities.dll", - "build/netstandard1.0/Microsoft.TestPlatform.PlatformAbstractions.dll", - "build/netstandard1.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", - "build/netstandard1.0/Mono.Cecil.Mdb.dll", - "build/netstandard1.0/Mono.Cecil.Pdb.dll", - "build/netstandard1.0/Mono.Cecil.Rocks.dll", - "build/netstandard1.0/Mono.Cecil.dll", - "build/netstandard1.0/Newtonsoft.Json.dll", - "build/netstandard1.0/NuGet.Frameworks.dll", - "build/netstandard1.0/System.AppContext.dll", - "build/netstandard1.0/System.Collections.Immutable.dll", - "build/netstandard1.0/System.Dynamic.Runtime.dll", - "build/netstandard1.0/System.IO.FileSystem.Primitives.dll", - "build/netstandard1.0/System.Linq.Expressions.dll", - "build/netstandard1.0/System.Linq.dll", - "build/netstandard1.0/System.ObjectModel.dll", - "build/netstandard1.0/System.Reflection.Emit.ILGeneration.dll", - "build/netstandard1.0/System.Reflection.Emit.Lightweight.dll", - "build/netstandard1.0/System.Reflection.Emit.dll", - "build/netstandard1.0/System.Reflection.Metadata.dll", - "build/netstandard1.0/System.Reflection.TypeExtensions.dll", - "build/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll", - "build/netstandard1.0/System.Runtime.Serialization.Primitives.dll", - "build/netstandard1.0/System.Text.RegularExpressions.dll", - "build/netstandard1.0/System.Threading.Tasks.Extensions.dll", - "build/netstandard1.0/System.Threading.dll", - "build/netstandard1.0/System.Xml.ReaderWriter.dll", - "build/netstandard1.0/System.Xml.XDocument.dll", - "build/netstandard1.0/coverlet.collector.deps.json", - "build/netstandard1.0/coverlet.collector.dll", - "build/netstandard1.0/coverlet.collector.pdb", - "build/netstandard1.0/coverlet.collector.targets", - "build/netstandard1.0/coverlet.core.dll", - "build/netstandard1.0/coverlet.core.pdb", - "coverlet-icon.png", - "coverlet.collector.6.0.0.nupkg.sha512", - "coverlet.collector.nuspec" - ] - }, - "MassTransit/8.5.5": { - "sha512": "bSg8k5q+rP1s+dIGXLLbctqDGdIkfDjdxwNWtCUH7xNCN9ZuM7mqSPQPIFgaYIi34e81m4FqAqo4CAHuWPkhRA==", - "type": "package", - "path": "masstransit/8.5.5", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "NuGet.README.md", - "lib/net472/MassTransit.dll", - "lib/net472/MassTransit.xml", - "lib/net8.0/MassTransit.dll", - "lib/net8.0/MassTransit.xml", - "lib/net9.0/MassTransit.dll", - "lib/net9.0/MassTransit.xml", - "lib/netstandard2.0/MassTransit.dll", - "lib/netstandard2.0/MassTransit.xml", - "masstransit.8.5.5.nupkg.sha512", - "masstransit.nuspec", - "mt-logo-small.png" - ] - }, - "MassTransit.Abstractions/8.5.5": { - "sha512": "0mn2Ay17dD6z5tgSLjbVRlldSbL9iowzFEfVgVfBXVG5ttz9dSWeR4TrdD6pqH93GWXp4CvSmF8i1HqxLX7DZw==", - "type": "package", - "path": "masstransit.abstractions/8.5.5", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "NuGet.README.md", - "lib/net472/MassTransit.Abstractions.dll", - "lib/net472/MassTransit.Abstractions.xml", - "lib/net8.0/MassTransit.Abstractions.dll", - "lib/net8.0/MassTransit.Abstractions.xml", - "lib/net9.0/MassTransit.Abstractions.dll", - "lib/net9.0/MassTransit.Abstractions.xml", - "lib/netstandard2.0/MassTransit.Abstractions.dll", - "lib/netstandard2.0/MassTransit.Abstractions.xml", - "masstransit.abstractions.8.5.5.nupkg.sha512", - "masstransit.abstractions.nuspec", - "mt-logo-small.png" - ] - }, - "MassTransit.RabbitMQ/8.5.5": { - "sha512": "UxWn4o90YVMF9PBkJeoskOFPneh6YtnI1fLJHtvZiSAG0eoiRrWPGa+6FQCvjkQ/ljCKfjzok2eGZc/vmNZ01A==", - "type": "package", - "path": "masstransit.rabbitmq/8.5.5", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "NuGet.README.md", - "lib/net472/MassTransit.RabbitMqTransport.dll", - "lib/net472/MassTransit.RabbitMqTransport.xml", - "lib/net8.0/MassTransit.RabbitMqTransport.dll", - "lib/net8.0/MassTransit.RabbitMqTransport.xml", - "lib/net9.0/MassTransit.RabbitMqTransport.dll", - "lib/net9.0/MassTransit.RabbitMqTransport.xml", - "lib/netstandard2.0/MassTransit.RabbitMqTransport.dll", - "lib/netstandard2.0/MassTransit.RabbitMqTransport.xml", - "masstransit.rabbitmq.8.5.5.nupkg.sha512", - "masstransit.rabbitmq.nuspec", - "mt-logo-small.png" - ] - }, - "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { - "sha512": "ve6uvLwKNRkfnO/QeN9M8eUJ49lCnWv/6/9p6iTEuiI6Rtsz+myaBAjdMzLuTViQY032xbTF5AdZF5BJzJJyXQ==", - "type": "package", - "path": "microsoft.aspnetcore.authentication.abstractions/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.xml", - "microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.authentication.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { - "sha512": "ZuUpJ4DvmVArmTlyGGg+b9IdKgd8Kw0SmEzhjy4dQw8R6rxfNqCXfGvGm3ld7xlrgthJFou/le9tadsSyjFLuw==", - "type": "package", - "path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.21", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll", - "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.xml", - "microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512", - "microsoft.aspnetcore.authentication.jwtbearer.nuspec" - ] - }, - "Microsoft.AspNetCore.Authorization/2.3.0": { - "sha512": "2/aBgLqBXva/+w8pzRNY8ET43Gi+dr1gv/7ySfbsh23lTK6IAgID5MGUEa1hreNIF+0XpW4tX7QwVe70+YvaPg==", - "type": "package", - "path": "microsoft.aspnetcore.authorization/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.xml", - "microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.authorization.nuspec" - ] - }, - "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { - "sha512": "vn31uQ1dA1MIV2WNNDOOOm88V5KgR9esfi0LyQ6eVaGq2h0Yw+R29f5A6qUNJt+RccS3qkYayylAy9tP1wV+7Q==", - "type": "package", - "path": "microsoft.aspnetcore.authorization.policy/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.xml", - "microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.authorization.policy.nuspec" - ] - }, - "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { - "sha512": "ULFSa+/L+WiAHVlIFHyg0OmHChU9Hx+K+xnt0hbIU5XmT1EGy0pNDx23QAzDtAy9jxQrTG6MX0MdvMeU4D4c7w==", - "type": "package", - "path": "microsoft.aspnetcore.connections.abstractions/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.xml", - "microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.connections.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { - "sha512": "4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==", - "type": "package", - "path": "microsoft.aspnetcore.hosting.abstractions/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.xml", - "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.hosting.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { - "sha512": "F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==", - "type": "package", - "path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml", - "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.hosting.server.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.Http/2.3.0": { - "sha512": "I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==", - "type": "package", - "path": "microsoft.aspnetcore.http/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.xml", - "microsoft.aspnetcore.http.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.http.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { - "sha512": "39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==", - "type": "package", - "path": "microsoft.aspnetcore.http.abstractions/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.xml", - "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.http.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Connections/1.2.0": { - "sha512": "VYMCOLvdT0y3O9lk4jUuIs8+re7u5+i+ka6ZZ6fIzSJ94c/JeMnAOOg39EB2i4crPXvLoiSdzKWlNPJgTbCZ2g==", - "type": "package", - "path": "microsoft.aspnetcore.http.connections/1.2.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.xml", - "microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512", - "microsoft.aspnetcore.http.connections.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { - "sha512": "yUA7eg6kv7Wbz5TCW4PqS5/kYE5VxUIEDvoxjw4p1RwS2LGm84F9fBtM0mD6wrRfiv1NUyJ7WBjn3PWd/ccO+w==", - "type": "package", - "path": "microsoft.aspnetcore.http.connections.common/1.2.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.xml", - "microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512", - "microsoft.aspnetcore.http.connections.common.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Extensions/2.3.0": { - "sha512": "EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==", - "type": "package", - "path": "microsoft.aspnetcore.http.extensions/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.xml", - "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.http.extensions.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Features/2.3.0": { - "sha512": "f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==", - "type": "package", - "path": "microsoft.aspnetcore.http.features/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.xml", - "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.http.features.nuspec" - ] - }, - "Microsoft.AspNetCore.Routing/2.3.0": { - "sha512": "no5/VC0CAQuT4PK4rp2K5fqwuSfzr2mdB6m1XNfWVhHnwzpRQzKAu9flChiT/JTLKwVI0Vq2MSmSW2OFMDCNXg==", - "type": "package", - "path": "microsoft.aspnetcore.routing/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.xml", - "microsoft.aspnetcore.routing.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.routing.nuspec" - ] - }, - "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { - "sha512": "ZkFpUrSmp6TocxZLBEX3IBv5dPMbQuMs6L/BPl0WRfn32UVOtNYJQ0bLdh3cL9LMV0rmTW/5R0w8CBYxr0AOUw==", - "type": "package", - "path": "microsoft.aspnetcore.routing.abstractions/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.xml", - "microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.routing.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR/1.2.0": { - "sha512": "XoCcsOTdtBiXyOzUtpbCl0IaqMOYjnr+6dbDxvUCFn7NR6bu7CwrlQ3oQzkltTwDZH0b6VEUN9wZPOYvPHi+Lg==", - "type": "package", - "path": "microsoft.aspnetcore.signalr/1.2.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.xml", - "microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Common/1.2.0": { - "sha512": "FZeXIaoWqe145ZPdfiptwkw/sP1BX1UD0706GNBwwoaFiKsNbLEl/Trhj2+idlp3qbX1BEwkQesKNxkopVY5Xg==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.common/1.2.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.xml", - "microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.common.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Core/1.2.0": { - "sha512": "eZTuMkSDw1uwjhLhJbMxgW2Cuyxfn0Kfqm8OBmqvuzE9Qc/VVzh8dGrAp2F9Pk7XKTDHmlhc5RTLcPPAZ5PSZw==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.core/1.2.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.xml", - "microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.core.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { - "sha512": "hNvZ7kQxp5Udqd/IFWViU35bUJvi4xnNzjkF28HRvrdrS7JNsIASTvMqArP6HLQUc3j6nlUOeShNhVmgI1wzHg==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.protocols.json/1.2.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", - "microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.protocols.json.nuspec" - ] - }, - "Microsoft.AspNetCore.WebSockets/2.3.0": { - "sha512": "+T4zpnVPkIjvvkyhTH3WBJlTfqmTBRozvnMudAUDvcb4e+NrWf52q8BXh52rkCrBgX6Cudf6F/UhZwTowyBtKg==", - "type": "package", - "path": "microsoft.aspnetcore.websockets/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.xml", - "microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.websockets.nuspec" - ] - }, - "Microsoft.AspNetCore.WebUtilities/2.3.0": { - "sha512": "trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==", - "type": "package", - "path": "microsoft.aspnetcore.webutilities/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.xml", - "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512", - "microsoft.aspnetcore.webutilities.nuspec" - ] - }, - "Microsoft.Bcl.AsyncInterfaces/1.1.0": { - "sha512": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==", - "type": "package", - "path": "microsoft.bcl.asyncinterfaces/1.1.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", - "microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512", - "microsoft.bcl.asyncinterfaces.nuspec", - "ref/net461/Microsoft.Bcl.AsyncInterfaces.dll", - "ref/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", - "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", - "useSharedDesignerContext.txt", - "version.txt" - ] - }, - "Microsoft.CodeCoverage/17.8.0": { - "sha512": "KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==", - "type": "package", - "path": "microsoft.codecoverage/17.8.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE_MIT.txt", - "ThirdPartyNotices.txt", - "build/netstandard2.0/CodeCoverage/CodeCoverage.config", - "build/netstandard2.0/CodeCoverage/CodeCoverage.exe", - "build/netstandard2.0/CodeCoverage/VanguardInstrumentationProfiler_x86.config", - "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe", - "build/netstandard2.0/CodeCoverage/amd64/VanguardInstrumentationProfiler_x64.config", - "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll", - "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll", - "build/netstandard2.0/CodeCoverage/arm64/VanguardInstrumentationProfiler_arm64.config", - "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll", - "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll", - "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll", - "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll", - "build/netstandard2.0/CodeCoverage/covrun32.dll", - "build/netstandard2.0/CodeCoverage/msdia140.dll", - "build/netstandard2.0/InstrumentationEngine/alpine/x64/VanguardInstrumentationProfiler_x64.config", - "build/netstandard2.0/InstrumentationEngine/alpine/x64/libCoverageInstrumentationMethod.so", - "build/netstandard2.0/InstrumentationEngine/alpine/x64/libInstrumentationEngine.so", - "build/netstandard2.0/InstrumentationEngine/arm64/MicrosoftInstrumentationEngine_arm64.dll", - "build/netstandard2.0/InstrumentationEngine/macos/x64/VanguardInstrumentationProfiler_x64.config", - "build/netstandard2.0/InstrumentationEngine/macos/x64/libCoverageInstrumentationMethod.dylib", - "build/netstandard2.0/InstrumentationEngine/macos/x64/libInstrumentationEngine.dylib", - "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/VanguardInstrumentationProfiler_x64.config", - "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/libCoverageInstrumentationMethod.so", - "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/libInstrumentationEngine.so", - "build/netstandard2.0/InstrumentationEngine/x64/MicrosoftInstrumentationEngine_x64.dll", - "build/netstandard2.0/InstrumentationEngine/x86/MicrosoftInstrumentationEngine_x86.dll", - "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll", - "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll", - "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll", - "build/netstandard2.0/Microsoft.CodeCoverage.props", - "build/netstandard2.0/Microsoft.CodeCoverage.targets", - "build/netstandard2.0/Microsoft.DiaSymReader.dll", - "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll", - "build/netstandard2.0/Mono.Cecil.Pdb.dll", - "build/netstandard2.0/Mono.Cecil.Rocks.dll", - "build/netstandard2.0/Mono.Cecil.dll", - "build/netstandard2.0/ThirdPartyNotices.txt", - "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll", - "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll", - "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll", - "microsoft.codecoverage.17.8.0.nupkg.sha512", - "microsoft.codecoverage.nuspec" - ] - }, - "Microsoft.CSharp/4.7.0": { - "sha512": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", - "type": "package", - "path": "microsoft.csharp/4.7.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/Microsoft.CSharp.dll", - "lib/netcoreapp2.0/_._", - "lib/netstandard1.3/Microsoft.CSharp.dll", - "lib/netstandard2.0/Microsoft.CSharp.dll", - "lib/netstandard2.0/Microsoft.CSharp.xml", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/uap10.0.16299/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "microsoft.csharp.4.7.0.nupkg.sha512", - "microsoft.csharp.nuspec", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/Microsoft.CSharp.dll", - "ref/netcore50/Microsoft.CSharp.xml", - "ref/netcore50/de/Microsoft.CSharp.xml", - "ref/netcore50/es/Microsoft.CSharp.xml", - "ref/netcore50/fr/Microsoft.CSharp.xml", - "ref/netcore50/it/Microsoft.CSharp.xml", - "ref/netcore50/ja/Microsoft.CSharp.xml", - "ref/netcore50/ko/Microsoft.CSharp.xml", - "ref/netcore50/ru/Microsoft.CSharp.xml", - "ref/netcore50/zh-hans/Microsoft.CSharp.xml", - "ref/netcore50/zh-hant/Microsoft.CSharp.xml", - "ref/netcoreapp2.0/_._", - "ref/netstandard1.0/Microsoft.CSharp.dll", - "ref/netstandard1.0/Microsoft.CSharp.xml", - "ref/netstandard1.0/de/Microsoft.CSharp.xml", - "ref/netstandard1.0/es/Microsoft.CSharp.xml", - "ref/netstandard1.0/fr/Microsoft.CSharp.xml", - "ref/netstandard1.0/it/Microsoft.CSharp.xml", - "ref/netstandard1.0/ja/Microsoft.CSharp.xml", - "ref/netstandard1.0/ko/Microsoft.CSharp.xml", - "ref/netstandard1.0/ru/Microsoft.CSharp.xml", - "ref/netstandard1.0/zh-hans/Microsoft.CSharp.xml", - "ref/netstandard1.0/zh-hant/Microsoft.CSharp.xml", - "ref/netstandard2.0/Microsoft.CSharp.dll", - "ref/netstandard2.0/Microsoft.CSharp.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/uap10.0.16299/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "useSharedDesignerContext.txt", - "version.txt" - ] - }, - "Microsoft.EntityFrameworkCore/8.0.22": { - "sha512": "nKGrD/WOO1d7qtXvghFAHre5Fk3ubw41pDFM0hbFxVIkMFxl4B0ug2LylMHOq+dgAceUeo3bx0qMh6/Jl9NbrA==", - "type": "package", - "path": "microsoft.entityframeworkcore/8.0.22", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", - "lib/net8.0/Microsoft.EntityFrameworkCore.dll", - "lib/net8.0/Microsoft.EntityFrameworkCore.xml", - "microsoft.entityframeworkcore.8.0.22.nupkg.sha512", - "microsoft.entityframeworkcore.nuspec" - ] - }, - "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { - "sha512": "p4Fw9mpJnZHmkdOGCbBqbvuyj1LnnFxNon8snMKIQ0MGSB+j9f6ffWDfvGRaOS/9ikqQG9RMOTzZk52q1G23ng==", - "type": "package", - "path": "microsoft.entityframeworkcore.abstractions/8.0.22", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", - "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", - "microsoft.entityframeworkcore.abstractions.8.0.22.nupkg.sha512", - "microsoft.entityframeworkcore.abstractions.nuspec" - ] - }, - "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": { - "sha512": "lrSWwr+X+Fn5XGOwOYFQJWx+u+eameqhMjQ1mohXUE2N7LauucZAtcH/j+yXwQntosKoXU1TOoggTL/zmYqbHQ==", - "type": "package", - "path": "microsoft.entityframeworkcore.analyzers/8.0.22", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", - "docs/PACKAGE.md", - "lib/netstandard2.0/_._", - "microsoft.entityframeworkcore.analyzers.8.0.22.nupkg.sha512", - "microsoft.entityframeworkcore.analyzers.nuspec" - ] - }, - "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { - "sha512": "dPbM/KLIh/AdHRjh/OhrzhAiHRLT0JBC5KSvAZ71eg42+QwF9aEuBfTzqr+GJE6DK9CLhqh9jXAqRKFojPki5g==", - "type": "package", - "path": "microsoft.entityframeworkcore.inmemory/8.0.22", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll", - "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.xml", - "microsoft.entityframeworkcore.inmemory.8.0.22.nupkg.sha512", - "microsoft.entityframeworkcore.inmemory.nuspec" - ] - }, - "Microsoft.EntityFrameworkCore.Relational/8.0.13": { - "sha512": "uQR2iTar+6ZEjEHTwgH0/7ySSRme4R9sDiupfG3w/eBub3365fPw/MjhsuOMQkdq9YzLM7veH4Qt/K9OqL26Qg==", - "type": "package", - "path": "microsoft.entityframeworkcore.relational/8.0.13", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", - "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", - "microsoft.entityframeworkcore.relational.8.0.13.nupkg.sha512", - "microsoft.entityframeworkcore.relational.nuspec" - ] - }, - "Microsoft.Extensions.ApiDescription.Server/6.0.5": { - "sha512": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==", - "type": "package", - "path": "microsoft.extensions.apidescription.server/6.0.5", - "hasTools": true, - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "build/Microsoft.Extensions.ApiDescription.Server.props", - "build/Microsoft.Extensions.ApiDescription.Server.targets", - "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props", - "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets", - "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", - "microsoft.extensions.apidescription.server.nuspec", - "tools/Newtonsoft.Json.dll", - "tools/dotnet-getdocument.deps.json", - "tools/dotnet-getdocument.dll", - "tools/dotnet-getdocument.runtimeconfig.json", - "tools/net461-x86/GetDocument.Insider.exe", - "tools/net461-x86/GetDocument.Insider.exe.config", - "tools/net461-x86/Microsoft.Win32.Primitives.dll", - "tools/net461-x86/System.AppContext.dll", - "tools/net461-x86/System.Buffers.dll", - "tools/net461-x86/System.Collections.Concurrent.dll", - "tools/net461-x86/System.Collections.NonGeneric.dll", - "tools/net461-x86/System.Collections.Specialized.dll", - "tools/net461-x86/System.Collections.dll", - "tools/net461-x86/System.ComponentModel.EventBasedAsync.dll", - "tools/net461-x86/System.ComponentModel.Primitives.dll", - "tools/net461-x86/System.ComponentModel.TypeConverter.dll", - "tools/net461-x86/System.ComponentModel.dll", - "tools/net461-x86/System.Console.dll", - "tools/net461-x86/System.Data.Common.dll", - "tools/net461-x86/System.Diagnostics.Contracts.dll", - "tools/net461-x86/System.Diagnostics.Debug.dll", - "tools/net461-x86/System.Diagnostics.DiagnosticSource.dll", - "tools/net461-x86/System.Diagnostics.FileVersionInfo.dll", - "tools/net461-x86/System.Diagnostics.Process.dll", - "tools/net461-x86/System.Diagnostics.StackTrace.dll", - "tools/net461-x86/System.Diagnostics.TextWriterTraceListener.dll", - "tools/net461-x86/System.Diagnostics.Tools.dll", - "tools/net461-x86/System.Diagnostics.TraceSource.dll", - "tools/net461-x86/System.Diagnostics.Tracing.dll", - "tools/net461-x86/System.Drawing.Primitives.dll", - "tools/net461-x86/System.Dynamic.Runtime.dll", - "tools/net461-x86/System.Globalization.Calendars.dll", - "tools/net461-x86/System.Globalization.Extensions.dll", - "tools/net461-x86/System.Globalization.dll", - "tools/net461-x86/System.IO.Compression.ZipFile.dll", - "tools/net461-x86/System.IO.Compression.dll", - "tools/net461-x86/System.IO.FileSystem.DriveInfo.dll", - "tools/net461-x86/System.IO.FileSystem.Primitives.dll", - "tools/net461-x86/System.IO.FileSystem.Watcher.dll", - "tools/net461-x86/System.IO.FileSystem.dll", - "tools/net461-x86/System.IO.IsolatedStorage.dll", - "tools/net461-x86/System.IO.MemoryMappedFiles.dll", - "tools/net461-x86/System.IO.Pipes.dll", - "tools/net461-x86/System.IO.UnmanagedMemoryStream.dll", - "tools/net461-x86/System.IO.dll", - "tools/net461-x86/System.Linq.Expressions.dll", - "tools/net461-x86/System.Linq.Parallel.dll", - "tools/net461-x86/System.Linq.Queryable.dll", - "tools/net461-x86/System.Linq.dll", - "tools/net461-x86/System.Memory.dll", - "tools/net461-x86/System.Net.Http.dll", - "tools/net461-x86/System.Net.NameResolution.dll", - "tools/net461-x86/System.Net.NetworkInformation.dll", - "tools/net461-x86/System.Net.Ping.dll", - "tools/net461-x86/System.Net.Primitives.dll", - "tools/net461-x86/System.Net.Requests.dll", - "tools/net461-x86/System.Net.Security.dll", - "tools/net461-x86/System.Net.Sockets.dll", - "tools/net461-x86/System.Net.WebHeaderCollection.dll", - "tools/net461-x86/System.Net.WebSockets.Client.dll", - "tools/net461-x86/System.Net.WebSockets.dll", - "tools/net461-x86/System.Numerics.Vectors.dll", - "tools/net461-x86/System.ObjectModel.dll", - "tools/net461-x86/System.Reflection.Extensions.dll", - "tools/net461-x86/System.Reflection.Primitives.dll", - "tools/net461-x86/System.Reflection.dll", - "tools/net461-x86/System.Resources.Reader.dll", - "tools/net461-x86/System.Resources.ResourceManager.dll", - "tools/net461-x86/System.Resources.Writer.dll", - "tools/net461-x86/System.Runtime.CompilerServices.Unsafe.dll", - "tools/net461-x86/System.Runtime.CompilerServices.VisualC.dll", - "tools/net461-x86/System.Runtime.Extensions.dll", - "tools/net461-x86/System.Runtime.Handles.dll", - "tools/net461-x86/System.Runtime.InteropServices.RuntimeInformation.dll", - "tools/net461-x86/System.Runtime.InteropServices.dll", - "tools/net461-x86/System.Runtime.Numerics.dll", - "tools/net461-x86/System.Runtime.Serialization.Formatters.dll", - "tools/net461-x86/System.Runtime.Serialization.Json.dll", - "tools/net461-x86/System.Runtime.Serialization.Primitives.dll", - "tools/net461-x86/System.Runtime.Serialization.Xml.dll", - "tools/net461-x86/System.Runtime.dll", - "tools/net461-x86/System.Security.Claims.dll", - "tools/net461-x86/System.Security.Cryptography.Algorithms.dll", - "tools/net461-x86/System.Security.Cryptography.Csp.dll", - "tools/net461-x86/System.Security.Cryptography.Encoding.dll", - "tools/net461-x86/System.Security.Cryptography.Primitives.dll", - "tools/net461-x86/System.Security.Cryptography.X509Certificates.dll", - "tools/net461-x86/System.Security.Principal.dll", - "tools/net461-x86/System.Security.SecureString.dll", - "tools/net461-x86/System.Text.Encoding.Extensions.dll", - "tools/net461-x86/System.Text.Encoding.dll", - "tools/net461-x86/System.Text.RegularExpressions.dll", - "tools/net461-x86/System.Threading.Overlapped.dll", - "tools/net461-x86/System.Threading.Tasks.Parallel.dll", - "tools/net461-x86/System.Threading.Tasks.dll", - "tools/net461-x86/System.Threading.Thread.dll", - "tools/net461-x86/System.Threading.ThreadPool.dll", - "tools/net461-x86/System.Threading.Timer.dll", - "tools/net461-x86/System.Threading.dll", - "tools/net461-x86/System.ValueTuple.dll", - "tools/net461-x86/System.Xml.ReaderWriter.dll", - "tools/net461-x86/System.Xml.XDocument.dll", - "tools/net461-x86/System.Xml.XPath.XDocument.dll", - "tools/net461-x86/System.Xml.XPath.dll", - "tools/net461-x86/System.Xml.XmlDocument.dll", - "tools/net461-x86/System.Xml.XmlSerializer.dll", - "tools/net461-x86/netstandard.dll", - "tools/net461/GetDocument.Insider.exe", - "tools/net461/GetDocument.Insider.exe.config", - "tools/net461/Microsoft.Win32.Primitives.dll", - "tools/net461/System.AppContext.dll", - "tools/net461/System.Buffers.dll", - "tools/net461/System.Collections.Concurrent.dll", - "tools/net461/System.Collections.NonGeneric.dll", - "tools/net461/System.Collections.Specialized.dll", - "tools/net461/System.Collections.dll", - "tools/net461/System.ComponentModel.EventBasedAsync.dll", - "tools/net461/System.ComponentModel.Primitives.dll", - "tools/net461/System.ComponentModel.TypeConverter.dll", - "tools/net461/System.ComponentModel.dll", - "tools/net461/System.Console.dll", - "tools/net461/System.Data.Common.dll", - "tools/net461/System.Diagnostics.Contracts.dll", - "tools/net461/System.Diagnostics.Debug.dll", - "tools/net461/System.Diagnostics.DiagnosticSource.dll", - "tools/net461/System.Diagnostics.FileVersionInfo.dll", - "tools/net461/System.Diagnostics.Process.dll", - "tools/net461/System.Diagnostics.StackTrace.dll", - "tools/net461/System.Diagnostics.TextWriterTraceListener.dll", - "tools/net461/System.Diagnostics.Tools.dll", - "tools/net461/System.Diagnostics.TraceSource.dll", - "tools/net461/System.Diagnostics.Tracing.dll", - "tools/net461/System.Drawing.Primitives.dll", - "tools/net461/System.Dynamic.Runtime.dll", - "tools/net461/System.Globalization.Calendars.dll", - "tools/net461/System.Globalization.Extensions.dll", - "tools/net461/System.Globalization.dll", - "tools/net461/System.IO.Compression.ZipFile.dll", - "tools/net461/System.IO.Compression.dll", - "tools/net461/System.IO.FileSystem.DriveInfo.dll", - "tools/net461/System.IO.FileSystem.Primitives.dll", - "tools/net461/System.IO.FileSystem.Watcher.dll", - "tools/net461/System.IO.FileSystem.dll", - "tools/net461/System.IO.IsolatedStorage.dll", - "tools/net461/System.IO.MemoryMappedFiles.dll", - "tools/net461/System.IO.Pipes.dll", - "tools/net461/System.IO.UnmanagedMemoryStream.dll", - "tools/net461/System.IO.dll", - "tools/net461/System.Linq.Expressions.dll", - "tools/net461/System.Linq.Parallel.dll", - "tools/net461/System.Linq.Queryable.dll", - "tools/net461/System.Linq.dll", - "tools/net461/System.Memory.dll", - "tools/net461/System.Net.Http.dll", - "tools/net461/System.Net.NameResolution.dll", - "tools/net461/System.Net.NetworkInformation.dll", - "tools/net461/System.Net.Ping.dll", - "tools/net461/System.Net.Primitives.dll", - "tools/net461/System.Net.Requests.dll", - "tools/net461/System.Net.Security.dll", - "tools/net461/System.Net.Sockets.dll", - "tools/net461/System.Net.WebHeaderCollection.dll", - "tools/net461/System.Net.WebSockets.Client.dll", - "tools/net461/System.Net.WebSockets.dll", - "tools/net461/System.Numerics.Vectors.dll", - "tools/net461/System.ObjectModel.dll", - "tools/net461/System.Reflection.Extensions.dll", - "tools/net461/System.Reflection.Primitives.dll", - "tools/net461/System.Reflection.dll", - "tools/net461/System.Resources.Reader.dll", - "tools/net461/System.Resources.ResourceManager.dll", - "tools/net461/System.Resources.Writer.dll", - "tools/net461/System.Runtime.CompilerServices.Unsafe.dll", - "tools/net461/System.Runtime.CompilerServices.VisualC.dll", - "tools/net461/System.Runtime.Extensions.dll", - "tools/net461/System.Runtime.Handles.dll", - "tools/net461/System.Runtime.InteropServices.RuntimeInformation.dll", - "tools/net461/System.Runtime.InteropServices.dll", - "tools/net461/System.Runtime.Numerics.dll", - "tools/net461/System.Runtime.Serialization.Formatters.dll", - "tools/net461/System.Runtime.Serialization.Json.dll", - "tools/net461/System.Runtime.Serialization.Primitives.dll", - "tools/net461/System.Runtime.Serialization.Xml.dll", - "tools/net461/System.Runtime.dll", - "tools/net461/System.Security.Claims.dll", - "tools/net461/System.Security.Cryptography.Algorithms.dll", - "tools/net461/System.Security.Cryptography.Csp.dll", - "tools/net461/System.Security.Cryptography.Encoding.dll", - "tools/net461/System.Security.Cryptography.Primitives.dll", - "tools/net461/System.Security.Cryptography.X509Certificates.dll", - "tools/net461/System.Security.Principal.dll", - "tools/net461/System.Security.SecureString.dll", - "tools/net461/System.Text.Encoding.Extensions.dll", - "tools/net461/System.Text.Encoding.dll", - "tools/net461/System.Text.RegularExpressions.dll", - "tools/net461/System.Threading.Overlapped.dll", - "tools/net461/System.Threading.Tasks.Parallel.dll", - "tools/net461/System.Threading.Tasks.dll", - "tools/net461/System.Threading.Thread.dll", - "tools/net461/System.Threading.ThreadPool.dll", - "tools/net461/System.Threading.Timer.dll", - "tools/net461/System.Threading.dll", - "tools/net461/System.ValueTuple.dll", - "tools/net461/System.Xml.ReaderWriter.dll", - "tools/net461/System.Xml.XDocument.dll", - "tools/net461/System.Xml.XPath.XDocument.dll", - "tools/net461/System.Xml.XPath.dll", - "tools/net461/System.Xml.XmlDocument.dll", - "tools/net461/System.Xml.XmlSerializer.dll", - "tools/net461/netstandard.dll", - "tools/netcoreapp2.1/GetDocument.Insider.deps.json", - "tools/netcoreapp2.1/GetDocument.Insider.dll", - "tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json", - "tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll" - ] - }, - "Microsoft.Extensions.Caching.Abstractions/10.0.2": { - "sha512": "WIRPDa/qoKHmJhTAPCO/zLu9kRLQ2Fd6HD5tzgdXJ3xGEVXDHP6FvakKJjynwKrVDld8H4G4tcbW53wuC/wxMQ==", - "type": "package", - "path": "microsoft.extensions.caching.abstractions/10.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", - "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.xml", - "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", - "microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512", - "microsoft.extensions.caching.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Caching.Memory/8.0.1": { - "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", - "type": "package", - "path": "microsoft.extensions.caching.memory/8.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", - "lib/net462/Microsoft.Extensions.Caching.Memory.dll", - "lib/net462/Microsoft.Extensions.Caching.Memory.xml", - "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", - "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", - "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", - "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", - "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", - "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", - "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", - "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", - "microsoft.extensions.caching.memory.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { - "sha512": "WEx0VM6KVv4Bf6lwe4WQTd4EixIfw38ZU3u/7zMe+uC5fOyiANu8Os/qyiqv2iEsIJb296tbd2E2BTaWIha3Vg==", - "type": "package", - "path": "microsoft.extensions.caching.stackexchangeredis/10.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll", - "lib/net10.0/Microsoft.Extensions.Caching.StackExchangeRedis.xml", - "lib/net462/Microsoft.Extensions.Caching.StackExchangeRedis.dll", - "lib/net462/Microsoft.Extensions.Caching.StackExchangeRedis.xml", - "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll", - "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.xml", - "microsoft.extensions.caching.stackexchangeredis.10.0.2.nupkg.sha512", - "microsoft.extensions.caching.stackexchangeredis.nuspec" - ] - }, - "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { - "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", - "type": "package", - "path": "microsoft.extensions.configuration.abstractions/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", - "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", - "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", - "microsoft.extensions.configuration.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.DependencyInjection/8.0.1": { - "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", - "type": "package", - "path": "microsoft.extensions.dependencyinjection/8.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", - "lib/net462/Microsoft.Extensions.DependencyInjection.dll", - "lib/net462/Microsoft.Extensions.DependencyInjection.xml", - "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", - "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", - "microsoft.extensions.dependencyinjection.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { - "sha512": "zOIurr59+kUf9vNcsUkCvKWZv+fPosUZXURZesYkJCvl0EzTc9F7maAO4Cd2WEV7ZJJ0AZrFQvuH6Npph9wdBw==", - "type": "package", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512", - "microsoft.extensions.dependencyinjection.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { - "sha512": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", - "type": "package", - "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Diagnostics.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.Abstractions.targets", - "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.xml", - "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", - "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", - "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", - "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", - "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", - "microsoft.extensions.diagnostics.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { - "sha512": "P9SoBuVZhJPpALZmSq72aQEb9ryP67EdquaCZGXGrrcASTNHYdrUhnpgSwIipgM5oVC+dKpRXg5zxobmF9xr5g==", - "type": "package", - "path": "microsoft.extensions.diagnostics.healthchecks/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.dll", - "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.xml", - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll", - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.xml", - "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll", - "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.xml", - "microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512", - "microsoft.extensions.diagnostics.healthchecks.nuspec" - ] - }, - "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { - "sha512": "AT2qqos3IgI09ok36Qag9T8bb6kHJ3uT9Q5ki6CySybFsK6/9JbvQAgAHf1pVEjST0/N4JaFaCbm40R5edffwg==", - "type": "package", - "path": "microsoft.extensions.diagnostics.healthchecks.abstractions/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.xml", - "microsoft.extensions.diagnostics.healthchecks.abstractions.8.0.0.nupkg.sha512", - "microsoft.extensions.diagnostics.healthchecks.abstractions.nuspec" - ] - }, - "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { - "sha512": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", - "type": "package", - "path": "microsoft.extensions.fileproviders.abstractions/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.FileProviders.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Abstractions.targets", - "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.xml", - "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.xml", - "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", - "microsoft.extensions.fileproviders.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { - "sha512": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", - "type": "package", - "path": "microsoft.extensions.hosting.abstractions/8.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Hosting.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.Abstractions.targets", - "lib/net462/Microsoft.Extensions.Hosting.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Hosting.Abstractions.xml", - "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.dll", - "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.xml", - "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.dll", - "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.xml", - "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll", - "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.xml", - "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", - "microsoft.extensions.hosting.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Logging/8.0.1": { - "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", - "type": "package", - "path": "microsoft.extensions.logging/8.0.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Logging.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", - "lib/net462/Microsoft.Extensions.Logging.dll", - "lib/net462/Microsoft.Extensions.Logging.xml", - "lib/net6.0/Microsoft.Extensions.Logging.dll", - "lib/net6.0/Microsoft.Extensions.Logging.xml", - "lib/net7.0/Microsoft.Extensions.Logging.dll", - "lib/net7.0/Microsoft.Extensions.Logging.xml", - "lib/net8.0/Microsoft.Extensions.Logging.dll", - "lib/net8.0/Microsoft.Extensions.Logging.xml", - "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", - "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", - "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", - "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", - "microsoft.extensions.logging.8.0.1.nupkg.sha512", - "microsoft.extensions.logging.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.2": { - "sha512": "RZkez/JjpnO+MZ6efKkSynN6ZztLpw3WbxNzjLCPBd97wWj1S9ZYPWi0nmT4kWBRa6atHsdM1ydGkUr8GudyDQ==", - "type": "package", - "path": "microsoft.extensions.logging.abstractions/10.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", - "microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512", - "microsoft.extensions.logging.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.ObjectPool/8.0.11": { - "sha512": "6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==", - "type": "package", - "path": "microsoft.extensions.objectpool/8.0.11", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net462/Microsoft.Extensions.ObjectPool.dll", - "lib/net462/Microsoft.Extensions.ObjectPool.xml", - "lib/net8.0/Microsoft.Extensions.ObjectPool.dll", - "lib/net8.0/Microsoft.Extensions.ObjectPool.xml", - "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.dll", - "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.xml", - "microsoft.extensions.objectpool.8.0.11.nupkg.sha512", - "microsoft.extensions.objectpool.nuspec" - ] - }, - "Microsoft.Extensions.Options/10.0.2": { - "sha512": "1De2LJjmxdqopI5AYC5dIhoZQ79AR5ayywxNF1rXrXFtKQfbQOV9+n/IsZBa7qWlr0MqoGpW8+OY2v/57udZOA==", - "type": "package", - "path": "microsoft.extensions.options/10.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Options.targets", - "buildTransitive/net462/Microsoft.Extensions.Options.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", - "lib/net10.0/Microsoft.Extensions.Options.dll", - "lib/net10.0/Microsoft.Extensions.Options.xml", - "lib/net462/Microsoft.Extensions.Options.dll", - "lib/net462/Microsoft.Extensions.Options.xml", - "lib/net8.0/Microsoft.Extensions.Options.dll", - "lib/net8.0/Microsoft.Extensions.Options.xml", - "lib/net9.0/Microsoft.Extensions.Options.dll", - "lib/net9.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.0/Microsoft.Extensions.Options.dll", - "lib/netstandard2.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.1/Microsoft.Extensions.Options.dll", - "lib/netstandard2.1/Microsoft.Extensions.Options.xml", - "microsoft.extensions.options.10.0.2.nupkg.sha512", - "microsoft.extensions.options.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Primitives/10.0.2": { - "sha512": "QmSiO+oLBEooGgB3i0GRXyeYRDHjllqt3k365jwfZlYWhvSHA3UL2NEVV5m8aZa041eIlblo6KMI5txvTMpTwA==", - "type": "package", - "path": "microsoft.extensions.primitives/10.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", - "lib/net10.0/Microsoft.Extensions.Primitives.dll", - "lib/net10.0/Microsoft.Extensions.Primitives.xml", - "lib/net462/Microsoft.Extensions.Primitives.dll", - "lib/net462/Microsoft.Extensions.Primitives.xml", - "lib/net8.0/Microsoft.Extensions.Primitives.dll", - "lib/net8.0/Microsoft.Extensions.Primitives.xml", - "lib/net9.0/Microsoft.Extensions.Primitives.dll", - "lib/net9.0/Microsoft.Extensions.Primitives.xml", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", - "microsoft.extensions.primitives.10.0.2.nupkg.sha512", - "microsoft.extensions.primitives.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.IdentityModel.Abstractions/8.14.0": { - "sha512": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", - "type": "package", - "path": "microsoft.identitymodel.abstractions/8.14.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net462/Microsoft.IdentityModel.Abstractions.dll", - "lib/net462/Microsoft.IdentityModel.Abstractions.xml", - "lib/net472/Microsoft.IdentityModel.Abstractions.dll", - "lib/net472/Microsoft.IdentityModel.Abstractions.xml", - "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll", - "lib/net6.0/Microsoft.IdentityModel.Abstractions.xml", - "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll", - "lib/net8.0/Microsoft.IdentityModel.Abstractions.xml", - "lib/net9.0/Microsoft.IdentityModel.Abstractions.dll", - "lib/net9.0/Microsoft.IdentityModel.Abstractions.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", - "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512", - "microsoft.identitymodel.abstractions.nuspec" - ] - }, - "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { - "sha512": "4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", - "type": "package", - "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", - "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512", - "microsoft.identitymodel.jsonwebtokens.nuspec" - ] - }, - "Microsoft.IdentityModel.Logging/8.14.0": { - "sha512": "eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", - "type": "package", - "path": "microsoft.identitymodel.logging/8.14.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net462/Microsoft.IdentityModel.Logging.dll", - "lib/net462/Microsoft.IdentityModel.Logging.xml", - "lib/net472/Microsoft.IdentityModel.Logging.dll", - "lib/net472/Microsoft.IdentityModel.Logging.xml", - "lib/net6.0/Microsoft.IdentityModel.Logging.dll", - "lib/net6.0/Microsoft.IdentityModel.Logging.xml", - "lib/net8.0/Microsoft.IdentityModel.Logging.dll", - "lib/net8.0/Microsoft.IdentityModel.Logging.xml", - "lib/net9.0/Microsoft.IdentityModel.Logging.dll", - "lib/net9.0/Microsoft.IdentityModel.Logging.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", - "microsoft.identitymodel.logging.8.14.0.nupkg.sha512", - "microsoft.identitymodel.logging.nuspec" - ] - }, - "Microsoft.IdentityModel.Protocols/7.1.2": { - "sha512": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", - "type": "package", - "path": "microsoft.identitymodel.protocols/7.1.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.Protocols.dll", - "lib/net461/Microsoft.IdentityModel.Protocols.xml", - "lib/net462/Microsoft.IdentityModel.Protocols.dll", - "lib/net462/Microsoft.IdentityModel.Protocols.xml", - "lib/net472/Microsoft.IdentityModel.Protocols.dll", - "lib/net472/Microsoft.IdentityModel.Protocols.xml", - "lib/net6.0/Microsoft.IdentityModel.Protocols.dll", - "lib/net6.0/Microsoft.IdentityModel.Protocols.xml", - "lib/net8.0/Microsoft.IdentityModel.Protocols.dll", - "lib/net8.0/Microsoft.IdentityModel.Protocols.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.xml", - "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512", - "microsoft.identitymodel.protocols.nuspec" - ] - }, - "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { - "sha512": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", - "type": "package", - "path": "microsoft.identitymodel.protocols.openidconnect/7.1.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", - "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512", - "microsoft.identitymodel.protocols.openidconnect.nuspec" - ] - }, - "Microsoft.IdentityModel.Tokens/8.14.0": { - "sha512": "lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", - "type": "package", - "path": "microsoft.identitymodel.tokens/8.14.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net462/Microsoft.IdentityModel.Tokens.dll", - "lib/net462/Microsoft.IdentityModel.Tokens.xml", - "lib/net472/Microsoft.IdentityModel.Tokens.dll", - "lib/net472/Microsoft.IdentityModel.Tokens.xml", - "lib/net6.0/Microsoft.IdentityModel.Tokens.dll", - "lib/net6.0/Microsoft.IdentityModel.Tokens.xml", - "lib/net8.0/Microsoft.IdentityModel.Tokens.dll", - "lib/net8.0/Microsoft.IdentityModel.Tokens.xml", - "lib/net9.0/Microsoft.IdentityModel.Tokens.dll", - "lib/net9.0/Microsoft.IdentityModel.Tokens.xml", - "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", - "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", - "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512", - "microsoft.identitymodel.tokens.nuspec" - ] - }, - "Microsoft.Net.Http.Headers/2.3.0": { - "sha512": "/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==", - "type": "package", - "path": "microsoft.net.http.headers/2.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll", - "lib/netstandard2.0/Microsoft.Net.Http.Headers.xml", - "microsoft.net.http.headers.2.3.0.nupkg.sha512", - "microsoft.net.http.headers.nuspec" - ] - }, - "Microsoft.NET.Test.Sdk/17.8.0": { - "sha512": "BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==", - "type": "package", - "path": "microsoft.net.test.sdk/17.8.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE_MIT.txt", - "build/net462/Microsoft.NET.Test.Sdk.props", - "build/net462/Microsoft.NET.Test.Sdk.targets", - "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.cs", - "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.fs", - "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.vb", - "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props", - "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets", - "buildMultiTargeting/Microsoft.NET.Test.Sdk.props", - "lib/net462/_._", - "lib/netcoreapp3.1/_._", - "microsoft.net.test.sdk.17.8.0.nupkg.sha512", - "microsoft.net.test.sdk.nuspec" - ] - }, - "Microsoft.NETCore.Platforms/1.1.0": { - "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", - "type": "package", - "path": "microsoft.netcore.platforms/1.1.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "microsoft.netcore.platforms.1.1.0.nupkg.sha512", - "microsoft.netcore.platforms.nuspec", - "runtime.json" - ] - }, - "Microsoft.NETCore.Targets/1.1.0": { - "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", - "type": "package", - "path": "microsoft.netcore.targets/1.1.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "microsoft.netcore.targets.1.1.0.nupkg.sha512", - "microsoft.netcore.targets.nuspec", - "runtime.json" - ] - }, - "Microsoft.OpenApi/1.6.14": { - "sha512": "tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==", - "type": "package", - "path": "microsoft.openapi/1.6.14", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/netstandard2.0/Microsoft.OpenApi.dll", - "lib/netstandard2.0/Microsoft.OpenApi.pdb", - "lib/netstandard2.0/Microsoft.OpenApi.xml", - "microsoft.openapi.1.6.14.nupkg.sha512", - "microsoft.openapi.nuspec" - ] - }, - "Microsoft.TestPlatform.ObjectModel/17.8.0": { - "sha512": "AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==", - "type": "package", - "path": "microsoft.testplatform.objectmodel/17.8.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE_MIT.txt", - "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll", - "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll", - "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", - "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", - "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", - "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", - "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", - "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", - "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", - "microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512", - "microsoft.testplatform.objectmodel.nuspec" - ] - }, - "Microsoft.TestPlatform.TestHost/17.8.0": { - "sha512": "9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==", - "type": "package", - "path": "microsoft.testplatform.testhost/17.8.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE_MIT.txt", - "ThirdPartyNotices.txt", - "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props", - "build/netcoreapp3.1/x64/testhost.dll", - "build/netcoreapp3.1/x64/testhost.exe", - "build/netcoreapp3.1/x86/testhost.x86.dll", - "build/netcoreapp3.1/x86/testhost.x86.exe", - "lib/net462/_._", - "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll", - "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", - "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll", - "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", - "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll", - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll", - "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/testhost.deps.json", - "lib/netcoreapp3.1/testhost.dll", - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/x64/msdia140.dll", - "lib/netcoreapp3.1/x86/msdia140.dll", - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", - "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", - "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", - "microsoft.testplatform.testhost.17.8.0.nupkg.sha512", - "microsoft.testplatform.testhost.nuspec" - ] - }, - "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { - "sha512": "EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==", - "type": "package", - "path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1", - "hasTools": true, - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "CHANGELOG.md", - "EULA.md", - "ThirdPartyNotices.txt", - "build/Container.props", - "build/Container.targets", - "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props", - "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets", - "build/Rules/GeneralBrowseObject.xaml", - "build/Rules/cs-CZ/GeneralBrowseObject.xaml", - "build/Rules/de-DE/GeneralBrowseObject.xaml", - "build/Rules/es-ES/GeneralBrowseObject.xaml", - "build/Rules/fr-FR/GeneralBrowseObject.xaml", - "build/Rules/it-IT/GeneralBrowseObject.xaml", - "build/Rules/ja-JP/GeneralBrowseObject.xaml", - "build/Rules/ko-KR/GeneralBrowseObject.xaml", - "build/Rules/pl-PL/GeneralBrowseObject.xaml", - "build/Rules/pt-BR/GeneralBrowseObject.xaml", - "build/Rules/ru-RU/GeneralBrowseObject.xaml", - "build/Rules/tr-TR/GeneralBrowseObject.xaml", - "build/Rules/zh-CN/GeneralBrowseObject.xaml", - "build/Rules/zh-TW/GeneralBrowseObject.xaml", - "build/ToolsTarget.props", - "build/ToolsTarget.targets", - "icon.png", - "microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512", - "microsoft.visualstudio.azure.containers.tools.targets.nuspec", - "tools/Microsoft.VisualStudio.Containers.Tools.Common.dll", - "tools/Microsoft.VisualStudio.Containers.Tools.Shared.dll", - "tools/Microsoft.VisualStudio.Containers.Tools.Tasks.dll", - "tools/Newtonsoft.Json.dll", - "tools/System.Security.Principal.Windows.dll", - "tools/cs/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/cs/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/cs/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/de/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/de/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/de/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/es/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/es/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/es/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/fr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/fr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/fr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/it/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/it/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/it/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/ja/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/ja/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/ja/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/ko/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/ko/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/ko/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/pl/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/pl/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/pl/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/ru/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/ru/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/ru/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/tr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/tr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/tr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", - "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", - "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", - "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll" - ] - }, - "Microsoft.Win32.Primitives/4.3.0": { - "sha512": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "type": "package", - "path": "microsoft.win32.primitives/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/Microsoft.Win32.Primitives.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "microsoft.win32.primitives.4.3.0.nupkg.sha512", - "microsoft.win32.primitives.nuspec", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/Microsoft.Win32.Primitives.dll", - "ref/netstandard1.3/Microsoft.Win32.Primitives.dll", - "ref/netstandard1.3/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/de/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/es/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/fr/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/it/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/ja/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/ko/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/ru/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/zh-hans/Microsoft.Win32.Primitives.xml", - "ref/netstandard1.3/zh-hant/Microsoft.Win32.Primitives.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._" - ] - }, - "Moq/4.20.72": { - "sha512": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", - "type": "package", - "path": "moq/4.20.72", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "icon.png", - "lib/net462/Moq.dll", - "lib/net6.0/Moq.dll", - "lib/netstandard2.0/Moq.dll", - "lib/netstandard2.1/Moq.dll", - "moq.4.20.72.nupkg.sha512", - "moq.nuspec", - "readme.md" - ] - }, - "MySqlConnector/2.3.5": { - "sha512": "AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", - "type": "package", - "path": "mysqlconnector/2.3.5", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net462/MySqlConnector.dll", - "lib/net462/MySqlConnector.xml", - "lib/net471/MySqlConnector.dll", - "lib/net471/MySqlConnector.xml", - "lib/net48/MySqlConnector.dll", - "lib/net48/MySqlConnector.xml", - "lib/net6.0/MySqlConnector.dll", - "lib/net6.0/MySqlConnector.xml", - "lib/net7.0/MySqlConnector.dll", - "lib/net7.0/MySqlConnector.xml", - "lib/net8.0/MySqlConnector.dll", - "lib/net8.0/MySqlConnector.xml", - "lib/netstandard2.0/MySqlConnector.dll", - "lib/netstandard2.0/MySqlConnector.xml", - "lib/netstandard2.1/MySqlConnector.dll", - "lib/netstandard2.1/MySqlConnector.xml", - "logo.png", - "mysqlconnector.2.3.5.nupkg.sha512", - "mysqlconnector.nuspec" - ] - }, - "NETStandard.Library/1.6.1": { - "sha512": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", - "type": "package", - "path": "netstandard.library/1.6.1", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "netstandard.library.1.6.1.nupkg.sha512", - "netstandard.library.nuspec" - ] - }, - "Newtonsoft.Json/13.0.4": { - "sha512": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==", - "type": "package", - "path": "newtonsoft.json/13.0.4", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.md", - "README.md", - "lib/net20/Newtonsoft.Json.dll", - "lib/net20/Newtonsoft.Json.xml", - "lib/net35/Newtonsoft.Json.dll", - "lib/net35/Newtonsoft.Json.xml", - "lib/net40/Newtonsoft.Json.dll", - "lib/net40/Newtonsoft.Json.xml", - "lib/net45/Newtonsoft.Json.dll", - "lib/net45/Newtonsoft.Json.xml", - "lib/net6.0/Newtonsoft.Json.dll", - "lib/net6.0/Newtonsoft.Json.xml", - "lib/netstandard1.0/Newtonsoft.Json.dll", - "lib/netstandard1.0/Newtonsoft.Json.xml", - "lib/netstandard1.3/Newtonsoft.Json.dll", - "lib/netstandard1.3/Newtonsoft.Json.xml", - "lib/netstandard2.0/Newtonsoft.Json.dll", - "lib/netstandard2.0/Newtonsoft.Json.xml", - "newtonsoft.json.13.0.4.nupkg.sha512", - "newtonsoft.json.nuspec", - "packageIcon.png" - ] - }, - "NuGet.Frameworks/6.5.0": { - "sha512": "QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==", - "type": "package", - "path": "nuget.frameworks/6.5.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "icon.png", - "lib/net472/NuGet.Frameworks.dll", - "lib/netstandard2.0/NuGet.Frameworks.dll", - "nuget.frameworks.6.5.0.nupkg.sha512", - "nuget.frameworks.nuspec" - ] - }, - "Pipelines.Sockets.Unofficial/2.2.8": { - "sha512": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", - "type": "package", - "path": "pipelines.sockets.unofficial/2.2.8", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/Pipelines.Sockets.Unofficial.dll", - "lib/net461/Pipelines.Sockets.Unofficial.xml", - "lib/net472/Pipelines.Sockets.Unofficial.dll", - "lib/net472/Pipelines.Sockets.Unofficial.xml", - "lib/net5.0/Pipelines.Sockets.Unofficial.dll", - "lib/net5.0/Pipelines.Sockets.Unofficial.xml", - "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.dll", - "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.xml", - "lib/netstandard2.0/Pipelines.Sockets.Unofficial.dll", - "lib/netstandard2.0/Pipelines.Sockets.Unofficial.xml", - "lib/netstandard2.1/Pipelines.Sockets.Unofficial.dll", - "lib/netstandard2.1/Pipelines.Sockets.Unofficial.xml", - "pipelines.sockets.unofficial.2.2.8.nupkg.sha512", - "pipelines.sockets.unofficial.nuspec" - ] - }, - "Pomelo.EntityFrameworkCore.MySql/8.0.3": { - "sha512": "gOHP6v/nFp5V/FgHqv9mZocGqCLGofihEX9dTbLhiXX3H7SJHmGX70GIPUpiqLT+1jIfDxg1PZh9MTUKuk7Kig==", - "type": "package", - "path": "pomelo.entityframeworkcore.mysql/8.0.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "icon.png", - "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll", - "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.xml", - "pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512", - "pomelo.entityframeworkcore.mysql.nuspec" - ] - }, - "RabbitMQ.Client/7.1.2": { - "sha512": "y3c6ulgULScWthHw5PLM1ShHRLhxg0vCtzX/hh61gRgNecL3ZC3WoBW2HYHoXOVRqTl99Br9E7CZEytGZEsCyQ==", - "type": "package", - "path": "rabbitmq.client/7.1.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "icon.png", - "lib/net8.0/RabbitMQ.Client.dll", - "lib/net8.0/RabbitMQ.Client.xml", - "lib/netstandard2.0/RabbitMQ.Client.dll", - "lib/netstandard2.0/RabbitMQ.Client.xml", - "rabbitmq.client.7.1.2.nupkg.sha512", - "rabbitmq.client.nuspec" - ] - }, - "RedLock.net/2.3.2": { - "sha512": "jlrALAArm4dCE292U3EtRoMnVKJ9M6sunbZn/oG5OuzlGtTpusXBfvDrnGWbgGDlWV027f5E9H5CiVnPxiq8+g==", - "type": "package", - "path": "redlock.net/2.3.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net461/RedLockNet.Abstractions.dll", - "lib/net461/RedLockNet.SERedis.dll", - "lib/net472/RedLockNet.Abstractions.dll", - "lib/net472/RedLockNet.SERedis.dll", - "lib/netstandard2.0/RedLockNet.Abstractions.dll", - "lib/netstandard2.0/RedLockNet.SERedis.dll", - "redlock-icon.png", - "redlock.net.2.3.2.nupkg.sha512", - "redlock.net.nuspec" - ] - }, - "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", - "type": "package", - "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", - "type": "package", - "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", - "type": "package", - "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.native.System/4.3.0": { - "sha512": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "type": "package", - "path": "runtime.native.system/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "runtime.native.system.4.3.0.nupkg.sha512", - "runtime.native.system.nuspec" - ] - }, - "runtime.native.System.IO.Compression/4.3.0": { - "sha512": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", - "type": "package", - "path": "runtime.native.system.io.compression/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "runtime.native.system.io.compression.4.3.0.nupkg.sha512", - "runtime.native.system.io.compression.nuspec" - ] - }, - "runtime.native.System.Net.Http/4.3.0": { - "sha512": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", - "type": "package", - "path": "runtime.native.system.net.http/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "runtime.native.system.net.http.4.3.0.nupkg.sha512", - "runtime.native.system.net.http.nuspec" - ] - }, - "runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "sha512": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", - "type": "package", - "path": "runtime.native.system.security.cryptography.apple/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", - "runtime.native.system.security.cryptography.apple.nuspec" - ] - }, - "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", - "type": "package", - "path": "runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/_._", - "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.native.system.security.cryptography.openssl.nuspec" - ] - }, - "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", - "type": "package", - "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", - "type": "package", - "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { - "sha512": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", - "type": "package", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", - "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.nuspec", - "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib" - ] - }, - "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", - "type": "package", - "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib" - ] - }, - "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", - "type": "package", - "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", - "type": "package", - "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", - "type": "package", - "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", - "type": "package", - "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.nuspec", - "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so" - ] - }, - "StackExchange.Redis/2.9.32": { - "sha512": "j5Rjbf7gWz5izrn0UWQy9RlQY4cQDPkwJfVqATnVsOa/+zzJrps12LOgacMsDl/Vit2f01cDiDkG/Rst8v2iGw==", - "type": "package", - "path": "stackexchange.redis/2.9.32", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net461/StackExchange.Redis.dll", - "lib/net461/StackExchange.Redis.xml", - "lib/net472/StackExchange.Redis.dll", - "lib/net472/StackExchange.Redis.xml", - "lib/net6.0/StackExchange.Redis.dll", - "lib/net6.0/StackExchange.Redis.xml", - "lib/net8.0/StackExchange.Redis.dll", - "lib/net8.0/StackExchange.Redis.xml", - "lib/netcoreapp3.1/StackExchange.Redis.dll", - "lib/netcoreapp3.1/StackExchange.Redis.xml", - "lib/netstandard2.0/StackExchange.Redis.dll", - "lib/netstandard2.0/StackExchange.Redis.xml", - "stackexchange.redis.2.9.32.nupkg.sha512", - "stackexchange.redis.nuspec" - ] - }, - "Swashbuckle.AspNetCore/6.6.2": { - "sha512": "+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==", - "type": "package", - "path": "swashbuckle.aspnetcore/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "build/Swashbuckle.AspNetCore.props", - "swashbuckle.aspnetcore.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.nuspec" - ] - }, - "Swashbuckle.AspNetCore.Swagger/6.6.2": { - "sha512": "ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==", - "type": "package", - "path": "swashbuckle.aspnetcore.swagger/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net5.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net5.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net5.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net6.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net6.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/net7.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net7.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net7.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.xml", - "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.dll", - "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.pdb", - "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.xml", - "package-readme.md", - "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.swagger.nuspec" - ] - }, - "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { - "sha512": "zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==", - "type": "package", - "path": "swashbuckle.aspnetcore.swaggergen/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.dll", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.xml", - "package-readme.md", - "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.swaggergen.nuspec" - ] - }, - "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { - "sha512": "mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==", - "type": "package", - "path": "swashbuckle.aspnetcore.swaggerui/6.6.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.dll", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", - "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.xml", - "package-readme.md", - "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512", - "swashbuckle.aspnetcore.swaggerui.nuspec" - ] - }, - "System.AppContext/4.3.0": { - "sha512": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", - "type": "package", - "path": "system.appcontext/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.AppContext.dll", - "lib/net463/System.AppContext.dll", - "lib/netcore50/System.AppContext.dll", - "lib/netstandard1.6/System.AppContext.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.AppContext.dll", - "ref/net463/System.AppContext.dll", - "ref/netstandard/_._", - "ref/netstandard1.3/System.AppContext.dll", - "ref/netstandard1.3/System.AppContext.xml", - "ref/netstandard1.3/de/System.AppContext.xml", - "ref/netstandard1.3/es/System.AppContext.xml", - "ref/netstandard1.3/fr/System.AppContext.xml", - "ref/netstandard1.3/it/System.AppContext.xml", - "ref/netstandard1.3/ja/System.AppContext.xml", - "ref/netstandard1.3/ko/System.AppContext.xml", - "ref/netstandard1.3/ru/System.AppContext.xml", - "ref/netstandard1.3/zh-hans/System.AppContext.xml", - "ref/netstandard1.3/zh-hant/System.AppContext.xml", - "ref/netstandard1.6/System.AppContext.dll", - "ref/netstandard1.6/System.AppContext.xml", - "ref/netstandard1.6/de/System.AppContext.xml", - "ref/netstandard1.6/es/System.AppContext.xml", - "ref/netstandard1.6/fr/System.AppContext.xml", - "ref/netstandard1.6/it/System.AppContext.xml", - "ref/netstandard1.6/ja/System.AppContext.xml", - "ref/netstandard1.6/ko/System.AppContext.xml", - "ref/netstandard1.6/ru/System.AppContext.xml", - "ref/netstandard1.6/zh-hans/System.AppContext.xml", - "ref/netstandard1.6/zh-hant/System.AppContext.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.AppContext.dll", - "system.appcontext.4.3.0.nupkg.sha512", - "system.appcontext.nuspec" - ] - }, - "System.Buffers/4.6.0": { - "sha512": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==", - "type": "package", - "path": "system.buffers/4.6.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "buildTransitive/net461/System.Buffers.targets", - "buildTransitive/net462/_._", - "lib/net462/System.Buffers.dll", - "lib/net462/System.Buffers.xml", - "lib/netcoreapp2.1/_._", - "lib/netstandard2.0/System.Buffers.dll", - "lib/netstandard2.0/System.Buffers.xml", - "system.buffers.4.6.0.nupkg.sha512", - "system.buffers.nuspec" - ] - }, - "System.Collections/4.3.0": { - "sha512": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", - "type": "package", - "path": "system.collections/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Collections.dll", - "ref/netcore50/System.Collections.xml", - "ref/netcore50/de/System.Collections.xml", - "ref/netcore50/es/System.Collections.xml", - "ref/netcore50/fr/System.Collections.xml", - "ref/netcore50/it/System.Collections.xml", - "ref/netcore50/ja/System.Collections.xml", - "ref/netcore50/ko/System.Collections.xml", - "ref/netcore50/ru/System.Collections.xml", - "ref/netcore50/zh-hans/System.Collections.xml", - "ref/netcore50/zh-hant/System.Collections.xml", - "ref/netstandard1.0/System.Collections.dll", - "ref/netstandard1.0/System.Collections.xml", - "ref/netstandard1.0/de/System.Collections.xml", - "ref/netstandard1.0/es/System.Collections.xml", - "ref/netstandard1.0/fr/System.Collections.xml", - "ref/netstandard1.0/it/System.Collections.xml", - "ref/netstandard1.0/ja/System.Collections.xml", - "ref/netstandard1.0/ko/System.Collections.xml", - "ref/netstandard1.0/ru/System.Collections.xml", - "ref/netstandard1.0/zh-hans/System.Collections.xml", - "ref/netstandard1.0/zh-hant/System.Collections.xml", - "ref/netstandard1.3/System.Collections.dll", - "ref/netstandard1.3/System.Collections.xml", - "ref/netstandard1.3/de/System.Collections.xml", - "ref/netstandard1.3/es/System.Collections.xml", - "ref/netstandard1.3/fr/System.Collections.xml", - "ref/netstandard1.3/it/System.Collections.xml", - "ref/netstandard1.3/ja/System.Collections.xml", - "ref/netstandard1.3/ko/System.Collections.xml", - "ref/netstandard1.3/ru/System.Collections.xml", - "ref/netstandard1.3/zh-hans/System.Collections.xml", - "ref/netstandard1.3/zh-hant/System.Collections.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.collections.4.3.0.nupkg.sha512", - "system.collections.nuspec" - ] - }, - "System.Collections.Concurrent/4.3.0": { - "sha512": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", - "type": "package", - "path": "system.collections.concurrent/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Collections.Concurrent.dll", - "lib/netstandard1.3/System.Collections.Concurrent.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Collections.Concurrent.dll", - "ref/netcore50/System.Collections.Concurrent.xml", - "ref/netcore50/de/System.Collections.Concurrent.xml", - "ref/netcore50/es/System.Collections.Concurrent.xml", - "ref/netcore50/fr/System.Collections.Concurrent.xml", - "ref/netcore50/it/System.Collections.Concurrent.xml", - "ref/netcore50/ja/System.Collections.Concurrent.xml", - "ref/netcore50/ko/System.Collections.Concurrent.xml", - "ref/netcore50/ru/System.Collections.Concurrent.xml", - "ref/netcore50/zh-hans/System.Collections.Concurrent.xml", - "ref/netcore50/zh-hant/System.Collections.Concurrent.xml", - "ref/netstandard1.1/System.Collections.Concurrent.dll", - "ref/netstandard1.1/System.Collections.Concurrent.xml", - "ref/netstandard1.1/de/System.Collections.Concurrent.xml", - "ref/netstandard1.1/es/System.Collections.Concurrent.xml", - "ref/netstandard1.1/fr/System.Collections.Concurrent.xml", - "ref/netstandard1.1/it/System.Collections.Concurrent.xml", - "ref/netstandard1.1/ja/System.Collections.Concurrent.xml", - "ref/netstandard1.1/ko/System.Collections.Concurrent.xml", - "ref/netstandard1.1/ru/System.Collections.Concurrent.xml", - "ref/netstandard1.1/zh-hans/System.Collections.Concurrent.xml", - "ref/netstandard1.1/zh-hant/System.Collections.Concurrent.xml", - "ref/netstandard1.3/System.Collections.Concurrent.dll", - "ref/netstandard1.3/System.Collections.Concurrent.xml", - "ref/netstandard1.3/de/System.Collections.Concurrent.xml", - "ref/netstandard1.3/es/System.Collections.Concurrent.xml", - "ref/netstandard1.3/fr/System.Collections.Concurrent.xml", - "ref/netstandard1.3/it/System.Collections.Concurrent.xml", - "ref/netstandard1.3/ja/System.Collections.Concurrent.xml", - "ref/netstandard1.3/ko/System.Collections.Concurrent.xml", - "ref/netstandard1.3/ru/System.Collections.Concurrent.xml", - "ref/netstandard1.3/zh-hans/System.Collections.Concurrent.xml", - "ref/netstandard1.3/zh-hant/System.Collections.Concurrent.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.collections.concurrent.4.3.0.nupkg.sha512", - "system.collections.concurrent.nuspec" - ] - }, - "System.Console/4.3.0": { - "sha512": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", - "type": "package", - "path": "system.console/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Console.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Console.dll", - "ref/netstandard1.3/System.Console.dll", - "ref/netstandard1.3/System.Console.xml", - "ref/netstandard1.3/de/System.Console.xml", - "ref/netstandard1.3/es/System.Console.xml", - "ref/netstandard1.3/fr/System.Console.xml", - "ref/netstandard1.3/it/System.Console.xml", - "ref/netstandard1.3/ja/System.Console.xml", - "ref/netstandard1.3/ko/System.Console.xml", - "ref/netstandard1.3/ru/System.Console.xml", - "ref/netstandard1.3/zh-hans/System.Console.xml", - "ref/netstandard1.3/zh-hant/System.Console.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.console.4.3.0.nupkg.sha512", - "system.console.nuspec" - ] - }, - "System.Diagnostics.Debug/4.3.0": { - "sha512": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", - "type": "package", - "path": "system.diagnostics.debug/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Diagnostics.Debug.dll", - "ref/netcore50/System.Diagnostics.Debug.xml", - "ref/netcore50/de/System.Diagnostics.Debug.xml", - "ref/netcore50/es/System.Diagnostics.Debug.xml", - "ref/netcore50/fr/System.Diagnostics.Debug.xml", - "ref/netcore50/it/System.Diagnostics.Debug.xml", - "ref/netcore50/ja/System.Diagnostics.Debug.xml", - "ref/netcore50/ko/System.Diagnostics.Debug.xml", - "ref/netcore50/ru/System.Diagnostics.Debug.xml", - "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml", - "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/System.Diagnostics.Debug.dll", - "ref/netstandard1.0/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/de/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/es/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/fr/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/it/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/ja/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/ko/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/ru/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/zh-hans/System.Diagnostics.Debug.xml", - "ref/netstandard1.0/zh-hant/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/System.Diagnostics.Debug.dll", - "ref/netstandard1.3/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/de/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/es/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/fr/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/it/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/ja/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/ko/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/ru/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/zh-hans/System.Diagnostics.Debug.xml", - "ref/netstandard1.3/zh-hant/System.Diagnostics.Debug.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.diagnostics.debug.4.3.0.nupkg.sha512", - "system.diagnostics.debug.nuspec" - ] - }, - "System.Diagnostics.DiagnosticSource/10.0.2": { - "sha512": "lYWBy8fKkJHaRcOuw30d67PrtVjR5754sz5Wl76s8P+vJ9FSThh9b7LIcTSODx1LY7NB3Srvg+JMnzd67qNZOw==", - "type": "package", - "path": "system.diagnostics.diagnosticsource/10.0.2", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", - "lib/net10.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net10.0/System.Diagnostics.DiagnosticSource.xml", - "lib/net462/System.Diagnostics.DiagnosticSource.dll", - "lib/net462/System.Diagnostics.DiagnosticSource.xml", - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net8.0/System.Diagnostics.DiagnosticSource.xml", - "lib/net9.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net9.0/System.Diagnostics.DiagnosticSource.xml", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", - "system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512", - "system.diagnostics.diagnosticsource.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Diagnostics.EventLog/6.0.0": { - "sha512": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==", - "type": "package", - "path": "system.diagnostics.eventlog/6.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/netcoreapp2.0/System.Diagnostics.EventLog.targets", - "buildTransitive/netcoreapp3.1/_._", - "lib/net461/System.Diagnostics.EventLog.dll", - "lib/net461/System.Diagnostics.EventLog.xml", - "lib/net6.0/System.Diagnostics.EventLog.dll", - "lib/net6.0/System.Diagnostics.EventLog.xml", - "lib/netcoreapp3.1/System.Diagnostics.EventLog.dll", - "lib/netcoreapp3.1/System.Diagnostics.EventLog.xml", - "lib/netstandard2.0/System.Diagnostics.EventLog.dll", - "lib/netstandard2.0/System.Diagnostics.EventLog.xml", - "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.Messages.dll", - "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.dll", - "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.xml", - "runtimes/win/lib/netcoreapp3.1/System.Diagnostics.EventLog.Messages.dll", - "runtimes/win/lib/netcoreapp3.1/System.Diagnostics.EventLog.dll", - "runtimes/win/lib/netcoreapp3.1/System.Diagnostics.EventLog.xml", - "system.diagnostics.eventlog.6.0.0.nupkg.sha512", - "system.diagnostics.eventlog.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Diagnostics.Tools/4.3.0": { - "sha512": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", - "type": "package", - "path": "system.diagnostics.tools/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Diagnostics.Tools.dll", - "ref/netcore50/System.Diagnostics.Tools.xml", - "ref/netcore50/de/System.Diagnostics.Tools.xml", - "ref/netcore50/es/System.Diagnostics.Tools.xml", - "ref/netcore50/fr/System.Diagnostics.Tools.xml", - "ref/netcore50/it/System.Diagnostics.Tools.xml", - "ref/netcore50/ja/System.Diagnostics.Tools.xml", - "ref/netcore50/ko/System.Diagnostics.Tools.xml", - "ref/netcore50/ru/System.Diagnostics.Tools.xml", - "ref/netcore50/zh-hans/System.Diagnostics.Tools.xml", - "ref/netcore50/zh-hant/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/System.Diagnostics.Tools.dll", - "ref/netstandard1.0/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/de/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/es/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/fr/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/it/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/ja/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/ko/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/ru/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/zh-hans/System.Diagnostics.Tools.xml", - "ref/netstandard1.0/zh-hant/System.Diagnostics.Tools.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.diagnostics.tools.4.3.0.nupkg.sha512", - "system.diagnostics.tools.nuspec" - ] - }, - "System.Diagnostics.Tracing/4.3.0": { - "sha512": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", - "type": "package", - "path": "system.diagnostics.tracing/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Diagnostics.Tracing.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Diagnostics.Tracing.dll", - "ref/netcore50/System.Diagnostics.Tracing.dll", - "ref/netcore50/System.Diagnostics.Tracing.xml", - "ref/netcore50/de/System.Diagnostics.Tracing.xml", - "ref/netcore50/es/System.Diagnostics.Tracing.xml", - "ref/netcore50/fr/System.Diagnostics.Tracing.xml", - "ref/netcore50/it/System.Diagnostics.Tracing.xml", - "ref/netcore50/ja/System.Diagnostics.Tracing.xml", - "ref/netcore50/ko/System.Diagnostics.Tracing.xml", - "ref/netcore50/ru/System.Diagnostics.Tracing.xml", - "ref/netcore50/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netcore50/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/System.Diagnostics.Tracing.dll", - "ref/netstandard1.1/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.1/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/System.Diagnostics.Tracing.dll", - "ref/netstandard1.2/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.2/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/System.Diagnostics.Tracing.dll", - "ref/netstandard1.3/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.3/zh-hant/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/System.Diagnostics.Tracing.dll", - "ref/netstandard1.5/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/de/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/es/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/fr/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/it/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/ja/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/ko/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/ru/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/zh-hans/System.Diagnostics.Tracing.xml", - "ref/netstandard1.5/zh-hant/System.Diagnostics.Tracing.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.diagnostics.tracing.4.3.0.nupkg.sha512", - "system.diagnostics.tracing.nuspec" - ] - }, - "System.Globalization/4.3.0": { - "sha512": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", - "type": "package", - "path": "system.globalization/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Globalization.dll", - "ref/netcore50/System.Globalization.xml", - "ref/netcore50/de/System.Globalization.xml", - "ref/netcore50/es/System.Globalization.xml", - "ref/netcore50/fr/System.Globalization.xml", - "ref/netcore50/it/System.Globalization.xml", - "ref/netcore50/ja/System.Globalization.xml", - "ref/netcore50/ko/System.Globalization.xml", - "ref/netcore50/ru/System.Globalization.xml", - "ref/netcore50/zh-hans/System.Globalization.xml", - "ref/netcore50/zh-hant/System.Globalization.xml", - "ref/netstandard1.0/System.Globalization.dll", - "ref/netstandard1.0/System.Globalization.xml", - "ref/netstandard1.0/de/System.Globalization.xml", - "ref/netstandard1.0/es/System.Globalization.xml", - "ref/netstandard1.0/fr/System.Globalization.xml", - "ref/netstandard1.0/it/System.Globalization.xml", - "ref/netstandard1.0/ja/System.Globalization.xml", - "ref/netstandard1.0/ko/System.Globalization.xml", - "ref/netstandard1.0/ru/System.Globalization.xml", - "ref/netstandard1.0/zh-hans/System.Globalization.xml", - "ref/netstandard1.0/zh-hant/System.Globalization.xml", - "ref/netstandard1.3/System.Globalization.dll", - "ref/netstandard1.3/System.Globalization.xml", - "ref/netstandard1.3/de/System.Globalization.xml", - "ref/netstandard1.3/es/System.Globalization.xml", - "ref/netstandard1.3/fr/System.Globalization.xml", - "ref/netstandard1.3/it/System.Globalization.xml", - "ref/netstandard1.3/ja/System.Globalization.xml", - "ref/netstandard1.3/ko/System.Globalization.xml", - "ref/netstandard1.3/ru/System.Globalization.xml", - "ref/netstandard1.3/zh-hans/System.Globalization.xml", - "ref/netstandard1.3/zh-hant/System.Globalization.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.globalization.4.3.0.nupkg.sha512", - "system.globalization.nuspec" - ] - }, - "System.Globalization.Calendars/4.3.0": { - "sha512": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", - "type": "package", - "path": "system.globalization.calendars/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Globalization.Calendars.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Globalization.Calendars.dll", - "ref/netstandard1.3/System.Globalization.Calendars.dll", - "ref/netstandard1.3/System.Globalization.Calendars.xml", - "ref/netstandard1.3/de/System.Globalization.Calendars.xml", - "ref/netstandard1.3/es/System.Globalization.Calendars.xml", - "ref/netstandard1.3/fr/System.Globalization.Calendars.xml", - "ref/netstandard1.3/it/System.Globalization.Calendars.xml", - "ref/netstandard1.3/ja/System.Globalization.Calendars.xml", - "ref/netstandard1.3/ko/System.Globalization.Calendars.xml", - "ref/netstandard1.3/ru/System.Globalization.Calendars.xml", - "ref/netstandard1.3/zh-hans/System.Globalization.Calendars.xml", - "ref/netstandard1.3/zh-hant/System.Globalization.Calendars.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.globalization.calendars.4.3.0.nupkg.sha512", - "system.globalization.calendars.nuspec" - ] - }, - "System.Globalization.Extensions/4.3.0": { - "sha512": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", - "type": "package", - "path": "system.globalization.extensions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Globalization.Extensions.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Globalization.Extensions.dll", - "ref/netstandard1.3/System.Globalization.Extensions.dll", - "ref/netstandard1.3/System.Globalization.Extensions.xml", - "ref/netstandard1.3/de/System.Globalization.Extensions.xml", - "ref/netstandard1.3/es/System.Globalization.Extensions.xml", - "ref/netstandard1.3/fr/System.Globalization.Extensions.xml", - "ref/netstandard1.3/it/System.Globalization.Extensions.xml", - "ref/netstandard1.3/ja/System.Globalization.Extensions.xml", - "ref/netstandard1.3/ko/System.Globalization.Extensions.xml", - "ref/netstandard1.3/ru/System.Globalization.Extensions.xml", - "ref/netstandard1.3/zh-hans/System.Globalization.Extensions.xml", - "ref/netstandard1.3/zh-hant/System.Globalization.Extensions.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll", - "runtimes/win/lib/net46/System.Globalization.Extensions.dll", - "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll", - "system.globalization.extensions.4.3.0.nupkg.sha512", - "system.globalization.extensions.nuspec" - ] - }, - "System.IdentityModel.Tokens.Jwt/8.14.0": { - "sha512": "EYGgN/S+HK7S6F3GaaPLFAfK0UzMrkXFyWCvXpQWFYmZln3dqtbyIO7VuTM/iIIPMzkelg8ZLlBPvMhxj6nOAA==", - "type": "package", - "path": "system.identitymodel.tokens.jwt/8.14.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/net462/System.IdentityModel.Tokens.Jwt.dll", - "lib/net462/System.IdentityModel.Tokens.Jwt.xml", - "lib/net472/System.IdentityModel.Tokens.Jwt.dll", - "lib/net472/System.IdentityModel.Tokens.Jwt.xml", - "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll", - "lib/net6.0/System.IdentityModel.Tokens.Jwt.xml", - "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll", - "lib/net8.0/System.IdentityModel.Tokens.Jwt.xml", - "lib/net9.0/System.IdentityModel.Tokens.Jwt.dll", - "lib/net9.0/System.IdentityModel.Tokens.Jwt.xml", - "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", - "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", - "system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512", - "system.identitymodel.tokens.jwt.nuspec" - ] - }, - "System.IO/4.3.0": { - "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "type": "package", - "path": "system.io/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.IO.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.IO.dll", - "ref/netcore50/System.IO.dll", - "ref/netcore50/System.IO.xml", - "ref/netcore50/de/System.IO.xml", - "ref/netcore50/es/System.IO.xml", - "ref/netcore50/fr/System.IO.xml", - "ref/netcore50/it/System.IO.xml", - "ref/netcore50/ja/System.IO.xml", - "ref/netcore50/ko/System.IO.xml", - "ref/netcore50/ru/System.IO.xml", - "ref/netcore50/zh-hans/System.IO.xml", - "ref/netcore50/zh-hant/System.IO.xml", - "ref/netstandard1.0/System.IO.dll", - "ref/netstandard1.0/System.IO.xml", - "ref/netstandard1.0/de/System.IO.xml", - "ref/netstandard1.0/es/System.IO.xml", - "ref/netstandard1.0/fr/System.IO.xml", - "ref/netstandard1.0/it/System.IO.xml", - "ref/netstandard1.0/ja/System.IO.xml", - "ref/netstandard1.0/ko/System.IO.xml", - "ref/netstandard1.0/ru/System.IO.xml", - "ref/netstandard1.0/zh-hans/System.IO.xml", - "ref/netstandard1.0/zh-hant/System.IO.xml", - "ref/netstandard1.3/System.IO.dll", - "ref/netstandard1.3/System.IO.xml", - "ref/netstandard1.3/de/System.IO.xml", - "ref/netstandard1.3/es/System.IO.xml", - "ref/netstandard1.3/fr/System.IO.xml", - "ref/netstandard1.3/it/System.IO.xml", - "ref/netstandard1.3/ja/System.IO.xml", - "ref/netstandard1.3/ko/System.IO.xml", - "ref/netstandard1.3/ru/System.IO.xml", - "ref/netstandard1.3/zh-hans/System.IO.xml", - "ref/netstandard1.3/zh-hant/System.IO.xml", - "ref/netstandard1.5/System.IO.dll", - "ref/netstandard1.5/System.IO.xml", - "ref/netstandard1.5/de/System.IO.xml", - "ref/netstandard1.5/es/System.IO.xml", - "ref/netstandard1.5/fr/System.IO.xml", - "ref/netstandard1.5/it/System.IO.xml", - "ref/netstandard1.5/ja/System.IO.xml", - "ref/netstandard1.5/ko/System.IO.xml", - "ref/netstandard1.5/ru/System.IO.xml", - "ref/netstandard1.5/zh-hans/System.IO.xml", - "ref/netstandard1.5/zh-hant/System.IO.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.io.4.3.0.nupkg.sha512", - "system.io.nuspec" - ] - }, - "System.IO.Compression/4.3.0": { - "sha512": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", - "type": "package", - "path": "system.io.compression/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net46/System.IO.Compression.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net46/System.IO.Compression.dll", - "ref/netcore50/System.IO.Compression.dll", - "ref/netcore50/System.IO.Compression.xml", - "ref/netcore50/de/System.IO.Compression.xml", - "ref/netcore50/es/System.IO.Compression.xml", - "ref/netcore50/fr/System.IO.Compression.xml", - "ref/netcore50/it/System.IO.Compression.xml", - "ref/netcore50/ja/System.IO.Compression.xml", - "ref/netcore50/ko/System.IO.Compression.xml", - "ref/netcore50/ru/System.IO.Compression.xml", - "ref/netcore50/zh-hans/System.IO.Compression.xml", - "ref/netcore50/zh-hant/System.IO.Compression.xml", - "ref/netstandard1.1/System.IO.Compression.dll", - "ref/netstandard1.1/System.IO.Compression.xml", - "ref/netstandard1.1/de/System.IO.Compression.xml", - "ref/netstandard1.1/es/System.IO.Compression.xml", - "ref/netstandard1.1/fr/System.IO.Compression.xml", - "ref/netstandard1.1/it/System.IO.Compression.xml", - "ref/netstandard1.1/ja/System.IO.Compression.xml", - "ref/netstandard1.1/ko/System.IO.Compression.xml", - "ref/netstandard1.1/ru/System.IO.Compression.xml", - "ref/netstandard1.1/zh-hans/System.IO.Compression.xml", - "ref/netstandard1.1/zh-hant/System.IO.Compression.xml", - "ref/netstandard1.3/System.IO.Compression.dll", - "ref/netstandard1.3/System.IO.Compression.xml", - "ref/netstandard1.3/de/System.IO.Compression.xml", - "ref/netstandard1.3/es/System.IO.Compression.xml", - "ref/netstandard1.3/fr/System.IO.Compression.xml", - "ref/netstandard1.3/it/System.IO.Compression.xml", - "ref/netstandard1.3/ja/System.IO.Compression.xml", - "ref/netstandard1.3/ko/System.IO.Compression.xml", - "ref/netstandard1.3/ru/System.IO.Compression.xml", - "ref/netstandard1.3/zh-hans/System.IO.Compression.xml", - "ref/netstandard1.3/zh-hant/System.IO.Compression.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll", - "runtimes/win/lib/net46/System.IO.Compression.dll", - "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll", - "system.io.compression.4.3.0.nupkg.sha512", - "system.io.compression.nuspec" - ] - }, - "System.IO.Compression.ZipFile/4.3.0": { - "sha512": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", - "type": "package", - "path": "system.io.compression.zipfile/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.IO.Compression.ZipFile.dll", - "lib/netstandard1.3/System.IO.Compression.ZipFile.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.IO.Compression.ZipFile.dll", - "ref/netstandard1.3/System.IO.Compression.ZipFile.dll", - "ref/netstandard1.3/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/de/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/es/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/fr/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/it/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/ja/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/ko/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/ru/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/zh-hans/System.IO.Compression.ZipFile.xml", - "ref/netstandard1.3/zh-hant/System.IO.Compression.ZipFile.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.io.compression.zipfile.4.3.0.nupkg.sha512", - "system.io.compression.zipfile.nuspec" - ] - }, - "System.IO.FileSystem/4.3.0": { - "sha512": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", - "type": "package", - "path": "system.io.filesystem/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.IO.FileSystem.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.IO.FileSystem.dll", - "ref/netstandard1.3/System.IO.FileSystem.dll", - "ref/netstandard1.3/System.IO.FileSystem.xml", - "ref/netstandard1.3/de/System.IO.FileSystem.xml", - "ref/netstandard1.3/es/System.IO.FileSystem.xml", - "ref/netstandard1.3/fr/System.IO.FileSystem.xml", - "ref/netstandard1.3/it/System.IO.FileSystem.xml", - "ref/netstandard1.3/ja/System.IO.FileSystem.xml", - "ref/netstandard1.3/ko/System.IO.FileSystem.xml", - "ref/netstandard1.3/ru/System.IO.FileSystem.xml", - "ref/netstandard1.3/zh-hans/System.IO.FileSystem.xml", - "ref/netstandard1.3/zh-hant/System.IO.FileSystem.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.io.filesystem.4.3.0.nupkg.sha512", - "system.io.filesystem.nuspec" - ] - }, - "System.IO.FileSystem.Primitives/4.3.0": { - "sha512": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", - "type": "package", - "path": "system.io.filesystem.primitives/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.IO.FileSystem.Primitives.dll", - "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.IO.FileSystem.Primitives.dll", - "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll", - "ref/netstandard1.3/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/de/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/es/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/fr/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/it/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/ja/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/ko/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/ru/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/zh-hans/System.IO.FileSystem.Primitives.xml", - "ref/netstandard1.3/zh-hant/System.IO.FileSystem.Primitives.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.io.filesystem.primitives.4.3.0.nupkg.sha512", - "system.io.filesystem.primitives.nuspec" - ] - }, - "System.IO.Pipelines/8.0.0": { - "sha512": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", - "type": "package", - "path": "system.io.pipelines/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.IO.Pipelines.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", - "lib/net462/System.IO.Pipelines.dll", - "lib/net462/System.IO.Pipelines.xml", - "lib/net6.0/System.IO.Pipelines.dll", - "lib/net6.0/System.IO.Pipelines.xml", - "lib/net7.0/System.IO.Pipelines.dll", - "lib/net7.0/System.IO.Pipelines.xml", - "lib/net8.0/System.IO.Pipelines.dll", - "lib/net8.0/System.IO.Pipelines.xml", - "lib/netstandard2.0/System.IO.Pipelines.dll", - "lib/netstandard2.0/System.IO.Pipelines.xml", - "system.io.pipelines.8.0.0.nupkg.sha512", - "system.io.pipelines.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Linq/4.3.0": { - "sha512": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", - "type": "package", - "path": "system.linq/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net463/System.Linq.dll", - "lib/netcore50/System.Linq.dll", - "lib/netstandard1.6/System.Linq.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net463/System.Linq.dll", - "ref/netcore50/System.Linq.dll", - "ref/netcore50/System.Linq.xml", - "ref/netcore50/de/System.Linq.xml", - "ref/netcore50/es/System.Linq.xml", - "ref/netcore50/fr/System.Linq.xml", - "ref/netcore50/it/System.Linq.xml", - "ref/netcore50/ja/System.Linq.xml", - "ref/netcore50/ko/System.Linq.xml", - "ref/netcore50/ru/System.Linq.xml", - "ref/netcore50/zh-hans/System.Linq.xml", - "ref/netcore50/zh-hant/System.Linq.xml", - "ref/netstandard1.0/System.Linq.dll", - "ref/netstandard1.0/System.Linq.xml", - "ref/netstandard1.0/de/System.Linq.xml", - "ref/netstandard1.0/es/System.Linq.xml", - "ref/netstandard1.0/fr/System.Linq.xml", - "ref/netstandard1.0/it/System.Linq.xml", - "ref/netstandard1.0/ja/System.Linq.xml", - "ref/netstandard1.0/ko/System.Linq.xml", - "ref/netstandard1.0/ru/System.Linq.xml", - "ref/netstandard1.0/zh-hans/System.Linq.xml", - "ref/netstandard1.0/zh-hant/System.Linq.xml", - "ref/netstandard1.6/System.Linq.dll", - "ref/netstandard1.6/System.Linq.xml", - "ref/netstandard1.6/de/System.Linq.xml", - "ref/netstandard1.6/es/System.Linq.xml", - "ref/netstandard1.6/fr/System.Linq.xml", - "ref/netstandard1.6/it/System.Linq.xml", - "ref/netstandard1.6/ja/System.Linq.xml", - "ref/netstandard1.6/ko/System.Linq.xml", - "ref/netstandard1.6/ru/System.Linq.xml", - "ref/netstandard1.6/zh-hans/System.Linq.xml", - "ref/netstandard1.6/zh-hant/System.Linq.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.linq.4.3.0.nupkg.sha512", - "system.linq.nuspec" - ] - }, - "System.Linq.Expressions/4.3.0": { - "sha512": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", - "type": "package", - "path": "system.linq.expressions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net463/System.Linq.Expressions.dll", - "lib/netcore50/System.Linq.Expressions.dll", - "lib/netstandard1.6/System.Linq.Expressions.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net463/System.Linq.Expressions.dll", - "ref/netcore50/System.Linq.Expressions.dll", - "ref/netcore50/System.Linq.Expressions.xml", - "ref/netcore50/de/System.Linq.Expressions.xml", - "ref/netcore50/es/System.Linq.Expressions.xml", - "ref/netcore50/fr/System.Linq.Expressions.xml", - "ref/netcore50/it/System.Linq.Expressions.xml", - "ref/netcore50/ja/System.Linq.Expressions.xml", - "ref/netcore50/ko/System.Linq.Expressions.xml", - "ref/netcore50/ru/System.Linq.Expressions.xml", - "ref/netcore50/zh-hans/System.Linq.Expressions.xml", - "ref/netcore50/zh-hant/System.Linq.Expressions.xml", - "ref/netstandard1.0/System.Linq.Expressions.dll", - "ref/netstandard1.0/System.Linq.Expressions.xml", - "ref/netstandard1.0/de/System.Linq.Expressions.xml", - "ref/netstandard1.0/es/System.Linq.Expressions.xml", - "ref/netstandard1.0/fr/System.Linq.Expressions.xml", - "ref/netstandard1.0/it/System.Linq.Expressions.xml", - "ref/netstandard1.0/ja/System.Linq.Expressions.xml", - "ref/netstandard1.0/ko/System.Linq.Expressions.xml", - "ref/netstandard1.0/ru/System.Linq.Expressions.xml", - "ref/netstandard1.0/zh-hans/System.Linq.Expressions.xml", - "ref/netstandard1.0/zh-hant/System.Linq.Expressions.xml", - "ref/netstandard1.3/System.Linq.Expressions.dll", - "ref/netstandard1.3/System.Linq.Expressions.xml", - "ref/netstandard1.3/de/System.Linq.Expressions.xml", - "ref/netstandard1.3/es/System.Linq.Expressions.xml", - "ref/netstandard1.3/fr/System.Linq.Expressions.xml", - "ref/netstandard1.3/it/System.Linq.Expressions.xml", - "ref/netstandard1.3/ja/System.Linq.Expressions.xml", - "ref/netstandard1.3/ko/System.Linq.Expressions.xml", - "ref/netstandard1.3/ru/System.Linq.Expressions.xml", - "ref/netstandard1.3/zh-hans/System.Linq.Expressions.xml", - "ref/netstandard1.3/zh-hant/System.Linq.Expressions.xml", - "ref/netstandard1.6/System.Linq.Expressions.dll", - "ref/netstandard1.6/System.Linq.Expressions.xml", - "ref/netstandard1.6/de/System.Linq.Expressions.xml", - "ref/netstandard1.6/es/System.Linq.Expressions.xml", - "ref/netstandard1.6/fr/System.Linq.Expressions.xml", - "ref/netstandard1.6/it/System.Linq.Expressions.xml", - "ref/netstandard1.6/ja/System.Linq.Expressions.xml", - "ref/netstandard1.6/ko/System.Linq.Expressions.xml", - "ref/netstandard1.6/ru/System.Linq.Expressions.xml", - "ref/netstandard1.6/zh-hans/System.Linq.Expressions.xml", - "ref/netstandard1.6/zh-hant/System.Linq.Expressions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Linq.Expressions.dll", - "system.linq.expressions.4.3.0.nupkg.sha512", - "system.linq.expressions.nuspec" - ] - }, - "System.Net.Http/4.3.0": { - "sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", - "type": "package", - "path": "system.net.http/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/Xamarinmac20/_._", - "lib/monoandroid10/_._", - "lib/monotouch10/_._", - "lib/net45/_._", - "lib/net46/System.Net.Http.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/Xamarinmac20/_._", - "ref/monoandroid10/_._", - "ref/monotouch10/_._", - "ref/net45/_._", - "ref/net46/System.Net.Http.dll", - "ref/net46/System.Net.Http.xml", - "ref/net46/de/System.Net.Http.xml", - "ref/net46/es/System.Net.Http.xml", - "ref/net46/fr/System.Net.Http.xml", - "ref/net46/it/System.Net.Http.xml", - "ref/net46/ja/System.Net.Http.xml", - "ref/net46/ko/System.Net.Http.xml", - "ref/net46/ru/System.Net.Http.xml", - "ref/net46/zh-hans/System.Net.Http.xml", - "ref/net46/zh-hant/System.Net.Http.xml", - "ref/netcore50/System.Net.Http.dll", - "ref/netcore50/System.Net.Http.xml", - "ref/netcore50/de/System.Net.Http.xml", - "ref/netcore50/es/System.Net.Http.xml", - "ref/netcore50/fr/System.Net.Http.xml", - "ref/netcore50/it/System.Net.Http.xml", - "ref/netcore50/ja/System.Net.Http.xml", - "ref/netcore50/ko/System.Net.Http.xml", - "ref/netcore50/ru/System.Net.Http.xml", - "ref/netcore50/zh-hans/System.Net.Http.xml", - "ref/netcore50/zh-hant/System.Net.Http.xml", - "ref/netstandard1.1/System.Net.Http.dll", - "ref/netstandard1.1/System.Net.Http.xml", - "ref/netstandard1.1/de/System.Net.Http.xml", - "ref/netstandard1.1/es/System.Net.Http.xml", - "ref/netstandard1.1/fr/System.Net.Http.xml", - "ref/netstandard1.1/it/System.Net.Http.xml", - "ref/netstandard1.1/ja/System.Net.Http.xml", - "ref/netstandard1.1/ko/System.Net.Http.xml", - "ref/netstandard1.1/ru/System.Net.Http.xml", - "ref/netstandard1.1/zh-hans/System.Net.Http.xml", - "ref/netstandard1.1/zh-hant/System.Net.Http.xml", - "ref/netstandard1.3/System.Net.Http.dll", - "ref/netstandard1.3/System.Net.Http.xml", - "ref/netstandard1.3/de/System.Net.Http.xml", - "ref/netstandard1.3/es/System.Net.Http.xml", - "ref/netstandard1.3/fr/System.Net.Http.xml", - "ref/netstandard1.3/it/System.Net.Http.xml", - "ref/netstandard1.3/ja/System.Net.Http.xml", - "ref/netstandard1.3/ko/System.Net.Http.xml", - "ref/netstandard1.3/ru/System.Net.Http.xml", - "ref/netstandard1.3/zh-hans/System.Net.Http.xml", - "ref/netstandard1.3/zh-hant/System.Net.Http.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll", - "runtimes/win/lib/net46/System.Net.Http.dll", - "runtimes/win/lib/netcore50/System.Net.Http.dll", - "runtimes/win/lib/netstandard1.3/System.Net.Http.dll", - "system.net.http.4.3.0.nupkg.sha512", - "system.net.http.nuspec" - ] - }, - "System.Net.Primitives/4.3.0": { - "sha512": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", - "type": "package", - "path": "system.net.primitives/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Net.Primitives.dll", - "ref/netcore50/System.Net.Primitives.xml", - "ref/netcore50/de/System.Net.Primitives.xml", - "ref/netcore50/es/System.Net.Primitives.xml", - "ref/netcore50/fr/System.Net.Primitives.xml", - "ref/netcore50/it/System.Net.Primitives.xml", - "ref/netcore50/ja/System.Net.Primitives.xml", - "ref/netcore50/ko/System.Net.Primitives.xml", - "ref/netcore50/ru/System.Net.Primitives.xml", - "ref/netcore50/zh-hans/System.Net.Primitives.xml", - "ref/netcore50/zh-hant/System.Net.Primitives.xml", - "ref/netstandard1.0/System.Net.Primitives.dll", - "ref/netstandard1.0/System.Net.Primitives.xml", - "ref/netstandard1.0/de/System.Net.Primitives.xml", - "ref/netstandard1.0/es/System.Net.Primitives.xml", - "ref/netstandard1.0/fr/System.Net.Primitives.xml", - "ref/netstandard1.0/it/System.Net.Primitives.xml", - "ref/netstandard1.0/ja/System.Net.Primitives.xml", - "ref/netstandard1.0/ko/System.Net.Primitives.xml", - "ref/netstandard1.0/ru/System.Net.Primitives.xml", - "ref/netstandard1.0/zh-hans/System.Net.Primitives.xml", - "ref/netstandard1.0/zh-hant/System.Net.Primitives.xml", - "ref/netstandard1.1/System.Net.Primitives.dll", - "ref/netstandard1.1/System.Net.Primitives.xml", - "ref/netstandard1.1/de/System.Net.Primitives.xml", - "ref/netstandard1.1/es/System.Net.Primitives.xml", - "ref/netstandard1.1/fr/System.Net.Primitives.xml", - "ref/netstandard1.1/it/System.Net.Primitives.xml", - "ref/netstandard1.1/ja/System.Net.Primitives.xml", - "ref/netstandard1.1/ko/System.Net.Primitives.xml", - "ref/netstandard1.1/ru/System.Net.Primitives.xml", - "ref/netstandard1.1/zh-hans/System.Net.Primitives.xml", - "ref/netstandard1.1/zh-hant/System.Net.Primitives.xml", - "ref/netstandard1.3/System.Net.Primitives.dll", - "ref/netstandard1.3/System.Net.Primitives.xml", - "ref/netstandard1.3/de/System.Net.Primitives.xml", - "ref/netstandard1.3/es/System.Net.Primitives.xml", - "ref/netstandard1.3/fr/System.Net.Primitives.xml", - "ref/netstandard1.3/it/System.Net.Primitives.xml", - "ref/netstandard1.3/ja/System.Net.Primitives.xml", - "ref/netstandard1.3/ko/System.Net.Primitives.xml", - "ref/netstandard1.3/ru/System.Net.Primitives.xml", - "ref/netstandard1.3/zh-hans/System.Net.Primitives.xml", - "ref/netstandard1.3/zh-hant/System.Net.Primitives.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.net.primitives.4.3.0.nupkg.sha512", - "system.net.primitives.nuspec" - ] - }, - "System.Net.Sockets/4.3.0": { - "sha512": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", - "type": "package", - "path": "system.net.sockets/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Net.Sockets.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Net.Sockets.dll", - "ref/netstandard1.3/System.Net.Sockets.dll", - "ref/netstandard1.3/System.Net.Sockets.xml", - "ref/netstandard1.3/de/System.Net.Sockets.xml", - "ref/netstandard1.3/es/System.Net.Sockets.xml", - "ref/netstandard1.3/fr/System.Net.Sockets.xml", - "ref/netstandard1.3/it/System.Net.Sockets.xml", - "ref/netstandard1.3/ja/System.Net.Sockets.xml", - "ref/netstandard1.3/ko/System.Net.Sockets.xml", - "ref/netstandard1.3/ru/System.Net.Sockets.xml", - "ref/netstandard1.3/zh-hans/System.Net.Sockets.xml", - "ref/netstandard1.3/zh-hant/System.Net.Sockets.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.net.sockets.4.3.0.nupkg.sha512", - "system.net.sockets.nuspec" - ] - }, - "System.Net.WebSockets.WebSocketProtocol/5.1.0": { - "sha512": "cVTT/Zw4JuUeX8H0tdWii0OMHsA5MY2PaFYOq/Hstw0jk479jZ+f8baCicWFNzJlCPWAe0uoNCELoB5eNmaMqA==", - "type": "package", - "path": "system.net.websockets.websocketprotocol/5.1.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "buildTransitive/net461/System.Net.WebSockets.WebSocketProtocol.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/System.Net.WebSockets.WebSocketProtocol.targets", - "lib/net462/System.Net.WebSockets.WebSocketProtocol.dll", - "lib/net462/System.Net.WebSockets.WebSocketProtocol.xml", - "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll", - "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.xml", - "lib/netstandard2.0/System.Net.WebSockets.WebSocketProtocol.dll", - "lib/netstandard2.0/System.Net.WebSockets.WebSocketProtocol.xml", - "system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512", - "system.net.websockets.websocketprotocol.nuspec" - ] - }, - "System.ObjectModel/4.3.0": { - "sha512": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", - "type": "package", - "path": "system.objectmodel/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.ObjectModel.dll", - "lib/netstandard1.3/System.ObjectModel.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.ObjectModel.dll", - "ref/netcore50/System.ObjectModel.xml", - "ref/netcore50/de/System.ObjectModel.xml", - "ref/netcore50/es/System.ObjectModel.xml", - "ref/netcore50/fr/System.ObjectModel.xml", - "ref/netcore50/it/System.ObjectModel.xml", - "ref/netcore50/ja/System.ObjectModel.xml", - "ref/netcore50/ko/System.ObjectModel.xml", - "ref/netcore50/ru/System.ObjectModel.xml", - "ref/netcore50/zh-hans/System.ObjectModel.xml", - "ref/netcore50/zh-hant/System.ObjectModel.xml", - "ref/netstandard1.0/System.ObjectModel.dll", - "ref/netstandard1.0/System.ObjectModel.xml", - "ref/netstandard1.0/de/System.ObjectModel.xml", - "ref/netstandard1.0/es/System.ObjectModel.xml", - "ref/netstandard1.0/fr/System.ObjectModel.xml", - "ref/netstandard1.0/it/System.ObjectModel.xml", - "ref/netstandard1.0/ja/System.ObjectModel.xml", - "ref/netstandard1.0/ko/System.ObjectModel.xml", - "ref/netstandard1.0/ru/System.ObjectModel.xml", - "ref/netstandard1.0/zh-hans/System.ObjectModel.xml", - "ref/netstandard1.0/zh-hant/System.ObjectModel.xml", - "ref/netstandard1.3/System.ObjectModel.dll", - "ref/netstandard1.3/System.ObjectModel.xml", - "ref/netstandard1.3/de/System.ObjectModel.xml", - "ref/netstandard1.3/es/System.ObjectModel.xml", - "ref/netstandard1.3/fr/System.ObjectModel.xml", - "ref/netstandard1.3/it/System.ObjectModel.xml", - "ref/netstandard1.3/ja/System.ObjectModel.xml", - "ref/netstandard1.3/ko/System.ObjectModel.xml", - "ref/netstandard1.3/ru/System.ObjectModel.xml", - "ref/netstandard1.3/zh-hans/System.ObjectModel.xml", - "ref/netstandard1.3/zh-hant/System.ObjectModel.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.objectmodel.4.3.0.nupkg.sha512", - "system.objectmodel.nuspec" - ] - }, - "System.Reflection/4.3.0": { - "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", - "type": "package", - "path": "system.reflection/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Reflection.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Reflection.dll", - "ref/netcore50/System.Reflection.dll", - "ref/netcore50/System.Reflection.xml", - "ref/netcore50/de/System.Reflection.xml", - "ref/netcore50/es/System.Reflection.xml", - "ref/netcore50/fr/System.Reflection.xml", - "ref/netcore50/it/System.Reflection.xml", - "ref/netcore50/ja/System.Reflection.xml", - "ref/netcore50/ko/System.Reflection.xml", - "ref/netcore50/ru/System.Reflection.xml", - "ref/netcore50/zh-hans/System.Reflection.xml", - "ref/netcore50/zh-hant/System.Reflection.xml", - "ref/netstandard1.0/System.Reflection.dll", - "ref/netstandard1.0/System.Reflection.xml", - "ref/netstandard1.0/de/System.Reflection.xml", - "ref/netstandard1.0/es/System.Reflection.xml", - "ref/netstandard1.0/fr/System.Reflection.xml", - "ref/netstandard1.0/it/System.Reflection.xml", - "ref/netstandard1.0/ja/System.Reflection.xml", - "ref/netstandard1.0/ko/System.Reflection.xml", - "ref/netstandard1.0/ru/System.Reflection.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.xml", - "ref/netstandard1.3/System.Reflection.dll", - "ref/netstandard1.3/System.Reflection.xml", - "ref/netstandard1.3/de/System.Reflection.xml", - "ref/netstandard1.3/es/System.Reflection.xml", - "ref/netstandard1.3/fr/System.Reflection.xml", - "ref/netstandard1.3/it/System.Reflection.xml", - "ref/netstandard1.3/ja/System.Reflection.xml", - "ref/netstandard1.3/ko/System.Reflection.xml", - "ref/netstandard1.3/ru/System.Reflection.xml", - "ref/netstandard1.3/zh-hans/System.Reflection.xml", - "ref/netstandard1.3/zh-hant/System.Reflection.xml", - "ref/netstandard1.5/System.Reflection.dll", - "ref/netstandard1.5/System.Reflection.xml", - "ref/netstandard1.5/de/System.Reflection.xml", - "ref/netstandard1.5/es/System.Reflection.xml", - "ref/netstandard1.5/fr/System.Reflection.xml", - "ref/netstandard1.5/it/System.Reflection.xml", - "ref/netstandard1.5/ja/System.Reflection.xml", - "ref/netstandard1.5/ko/System.Reflection.xml", - "ref/netstandard1.5/ru/System.Reflection.xml", - "ref/netstandard1.5/zh-hans/System.Reflection.xml", - "ref/netstandard1.5/zh-hant/System.Reflection.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.reflection.4.3.0.nupkg.sha512", - "system.reflection.nuspec" - ] - }, - "System.Reflection.Emit/4.7.0": { - "sha512": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", - "type": "package", - "path": "system.reflection.emit/4.7.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Reflection.Emit.dll", - "lib/netcoreapp2.0/_._", - "lib/netstandard1.1/System.Reflection.Emit.dll", - "lib/netstandard1.1/System.Reflection.Emit.xml", - "lib/netstandard1.3/System.Reflection.Emit.dll", - "lib/netstandard2.0/System.Reflection.Emit.dll", - "lib/netstandard2.0/System.Reflection.Emit.xml", - "lib/netstandard2.1/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcoreapp2.0/_._", - "ref/netstandard1.1/System.Reflection.Emit.dll", - "ref/netstandard1.1/System.Reflection.Emit.xml", - "ref/netstandard1.1/de/System.Reflection.Emit.xml", - "ref/netstandard1.1/es/System.Reflection.Emit.xml", - "ref/netstandard1.1/fr/System.Reflection.Emit.xml", - "ref/netstandard1.1/it/System.Reflection.Emit.xml", - "ref/netstandard1.1/ja/System.Reflection.Emit.xml", - "ref/netstandard1.1/ko/System.Reflection.Emit.xml", - "ref/netstandard1.1/ru/System.Reflection.Emit.xml", - "ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml", - "ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml", - "ref/netstandard2.0/System.Reflection.Emit.dll", - "ref/netstandard2.0/System.Reflection.Emit.xml", - "ref/netstandard2.1/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Reflection.Emit.dll", - "runtimes/aot/lib/netcore50/System.Reflection.Emit.xml", - "system.reflection.emit.4.7.0.nupkg.sha512", - "system.reflection.emit.nuspec", - "useSharedDesignerContext.txt", - "version.txt" - ] - }, - "System.Reflection.Emit.ILGeneration/4.3.0": { - "sha512": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", - "type": "package", - "path": "system.reflection.emit.ilgeneration/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Reflection.Emit.ILGeneration.dll", - "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll", - "lib/portable-net45+wp8/_._", - "lib/wp80/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll", - "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/de/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/es/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/fr/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/it/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/ja/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/ko/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/ru/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.Emit.ILGeneration.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.Emit.ILGeneration.xml", - "ref/portable-net45+wp8/_._", - "ref/wp80/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/_._", - "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", - "system.reflection.emit.ilgeneration.nuspec" - ] - }, - "System.Reflection.Emit.Lightweight/4.3.0": { - "sha512": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", - "type": "package", - "path": "system.reflection.emit.lightweight/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Reflection.Emit.Lightweight.dll", - "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll", - "lib/portable-net45+wp8/_._", - "lib/wp80/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll", - "ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml", - "ref/portable-net45+wp8/_._", - "ref/wp80/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/_._", - "system.reflection.emit.lightweight.4.3.0.nupkg.sha512", - "system.reflection.emit.lightweight.nuspec" - ] - }, - "System.Reflection.Extensions/4.3.0": { - "sha512": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", - "type": "package", - "path": "system.reflection.extensions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Reflection.Extensions.dll", - "ref/netcore50/System.Reflection.Extensions.xml", - "ref/netcore50/de/System.Reflection.Extensions.xml", - "ref/netcore50/es/System.Reflection.Extensions.xml", - "ref/netcore50/fr/System.Reflection.Extensions.xml", - "ref/netcore50/it/System.Reflection.Extensions.xml", - "ref/netcore50/ja/System.Reflection.Extensions.xml", - "ref/netcore50/ko/System.Reflection.Extensions.xml", - "ref/netcore50/ru/System.Reflection.Extensions.xml", - "ref/netcore50/zh-hans/System.Reflection.Extensions.xml", - "ref/netcore50/zh-hant/System.Reflection.Extensions.xml", - "ref/netstandard1.0/System.Reflection.Extensions.dll", - "ref/netstandard1.0/System.Reflection.Extensions.xml", - "ref/netstandard1.0/de/System.Reflection.Extensions.xml", - "ref/netstandard1.0/es/System.Reflection.Extensions.xml", - "ref/netstandard1.0/fr/System.Reflection.Extensions.xml", - "ref/netstandard1.0/it/System.Reflection.Extensions.xml", - "ref/netstandard1.0/ja/System.Reflection.Extensions.xml", - "ref/netstandard1.0/ko/System.Reflection.Extensions.xml", - "ref/netstandard1.0/ru/System.Reflection.Extensions.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.Extensions.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.Extensions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.reflection.extensions.4.3.0.nupkg.sha512", - "system.reflection.extensions.nuspec" - ] - }, - "System.Reflection.Metadata/1.6.0": { - "sha512": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", - "type": "package", - "path": "system.reflection.metadata/1.6.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "lib/netstandard1.1/System.Reflection.Metadata.dll", - "lib/netstandard1.1/System.Reflection.Metadata.xml", - "lib/netstandard2.0/System.Reflection.Metadata.dll", - "lib/netstandard2.0/System.Reflection.Metadata.xml", - "lib/portable-net45+win8/System.Reflection.Metadata.dll", - "lib/portable-net45+win8/System.Reflection.Metadata.xml", - "system.reflection.metadata.1.6.0.nupkg.sha512", - "system.reflection.metadata.nuspec", - "useSharedDesignerContext.txt", - "version.txt" - ] - }, - "System.Reflection.Primitives/4.3.0": { - "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", - "type": "package", - "path": "system.reflection.primitives/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Reflection.Primitives.dll", - "ref/netcore50/System.Reflection.Primitives.xml", - "ref/netcore50/de/System.Reflection.Primitives.xml", - "ref/netcore50/es/System.Reflection.Primitives.xml", - "ref/netcore50/fr/System.Reflection.Primitives.xml", - "ref/netcore50/it/System.Reflection.Primitives.xml", - "ref/netcore50/ja/System.Reflection.Primitives.xml", - "ref/netcore50/ko/System.Reflection.Primitives.xml", - "ref/netcore50/ru/System.Reflection.Primitives.xml", - "ref/netcore50/zh-hans/System.Reflection.Primitives.xml", - "ref/netcore50/zh-hant/System.Reflection.Primitives.xml", - "ref/netstandard1.0/System.Reflection.Primitives.dll", - "ref/netstandard1.0/System.Reflection.Primitives.xml", - "ref/netstandard1.0/de/System.Reflection.Primitives.xml", - "ref/netstandard1.0/es/System.Reflection.Primitives.xml", - "ref/netstandard1.0/fr/System.Reflection.Primitives.xml", - "ref/netstandard1.0/it/System.Reflection.Primitives.xml", - "ref/netstandard1.0/ja/System.Reflection.Primitives.xml", - "ref/netstandard1.0/ko/System.Reflection.Primitives.xml", - "ref/netstandard1.0/ru/System.Reflection.Primitives.xml", - "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml", - "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.reflection.primitives.4.3.0.nupkg.sha512", - "system.reflection.primitives.nuspec" - ] - }, - "System.Reflection.TypeExtensions/4.3.0": { - "sha512": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "type": "package", - "path": "system.reflection.typeextensions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Reflection.TypeExtensions.dll", - "lib/net462/System.Reflection.TypeExtensions.dll", - "lib/netcore50/System.Reflection.TypeExtensions.dll", - "lib/netstandard1.5/System.Reflection.TypeExtensions.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Reflection.TypeExtensions.dll", - "ref/net462/System.Reflection.TypeExtensions.dll", - "ref/netstandard1.3/System.Reflection.TypeExtensions.dll", - "ref/netstandard1.3/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/de/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/es/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/fr/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/it/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/ja/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/ko/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/ru/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/zh-hans/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.3/zh-hant/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/System.Reflection.TypeExtensions.dll", - "ref/netstandard1.5/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/de/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/es/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/fr/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/it/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/ja/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/ko/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/ru/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/zh-hans/System.Reflection.TypeExtensions.xml", - "ref/netstandard1.5/zh-hant/System.Reflection.TypeExtensions.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Reflection.TypeExtensions.dll", - "system.reflection.typeextensions.4.3.0.nupkg.sha512", - "system.reflection.typeextensions.nuspec" - ] - }, - "System.Resources.ResourceManager/4.3.0": { - "sha512": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", - "type": "package", - "path": "system.resources.resourcemanager/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Resources.ResourceManager.dll", - "ref/netcore50/System.Resources.ResourceManager.xml", - "ref/netcore50/de/System.Resources.ResourceManager.xml", - "ref/netcore50/es/System.Resources.ResourceManager.xml", - "ref/netcore50/fr/System.Resources.ResourceManager.xml", - "ref/netcore50/it/System.Resources.ResourceManager.xml", - "ref/netcore50/ja/System.Resources.ResourceManager.xml", - "ref/netcore50/ko/System.Resources.ResourceManager.xml", - "ref/netcore50/ru/System.Resources.ResourceManager.xml", - "ref/netcore50/zh-hans/System.Resources.ResourceManager.xml", - "ref/netcore50/zh-hant/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/System.Resources.ResourceManager.dll", - "ref/netstandard1.0/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/de/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/es/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/fr/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/it/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/ja/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/ko/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/ru/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/zh-hans/System.Resources.ResourceManager.xml", - "ref/netstandard1.0/zh-hant/System.Resources.ResourceManager.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.resources.resourcemanager.4.3.0.nupkg.sha512", - "system.resources.resourcemanager.nuspec" - ] - }, - "System.Runtime/4.3.0": { - "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "type": "package", - "path": "system.runtime/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Runtime.dll", - "lib/portable-net45+win8+wp80+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Runtime.dll", - "ref/netcore50/System.Runtime.dll", - "ref/netcore50/System.Runtime.xml", - "ref/netcore50/de/System.Runtime.xml", - "ref/netcore50/es/System.Runtime.xml", - "ref/netcore50/fr/System.Runtime.xml", - "ref/netcore50/it/System.Runtime.xml", - "ref/netcore50/ja/System.Runtime.xml", - "ref/netcore50/ko/System.Runtime.xml", - "ref/netcore50/ru/System.Runtime.xml", - "ref/netcore50/zh-hans/System.Runtime.xml", - "ref/netcore50/zh-hant/System.Runtime.xml", - "ref/netstandard1.0/System.Runtime.dll", - "ref/netstandard1.0/System.Runtime.xml", - "ref/netstandard1.0/de/System.Runtime.xml", - "ref/netstandard1.0/es/System.Runtime.xml", - "ref/netstandard1.0/fr/System.Runtime.xml", - "ref/netstandard1.0/it/System.Runtime.xml", - "ref/netstandard1.0/ja/System.Runtime.xml", - "ref/netstandard1.0/ko/System.Runtime.xml", - "ref/netstandard1.0/ru/System.Runtime.xml", - "ref/netstandard1.0/zh-hans/System.Runtime.xml", - "ref/netstandard1.0/zh-hant/System.Runtime.xml", - "ref/netstandard1.2/System.Runtime.dll", - "ref/netstandard1.2/System.Runtime.xml", - "ref/netstandard1.2/de/System.Runtime.xml", - "ref/netstandard1.2/es/System.Runtime.xml", - "ref/netstandard1.2/fr/System.Runtime.xml", - "ref/netstandard1.2/it/System.Runtime.xml", - "ref/netstandard1.2/ja/System.Runtime.xml", - "ref/netstandard1.2/ko/System.Runtime.xml", - "ref/netstandard1.2/ru/System.Runtime.xml", - "ref/netstandard1.2/zh-hans/System.Runtime.xml", - "ref/netstandard1.2/zh-hant/System.Runtime.xml", - "ref/netstandard1.3/System.Runtime.dll", - "ref/netstandard1.3/System.Runtime.xml", - "ref/netstandard1.3/de/System.Runtime.xml", - "ref/netstandard1.3/es/System.Runtime.xml", - "ref/netstandard1.3/fr/System.Runtime.xml", - "ref/netstandard1.3/it/System.Runtime.xml", - "ref/netstandard1.3/ja/System.Runtime.xml", - "ref/netstandard1.3/ko/System.Runtime.xml", - "ref/netstandard1.3/ru/System.Runtime.xml", - "ref/netstandard1.3/zh-hans/System.Runtime.xml", - "ref/netstandard1.3/zh-hant/System.Runtime.xml", - "ref/netstandard1.5/System.Runtime.dll", - "ref/netstandard1.5/System.Runtime.xml", - "ref/netstandard1.5/de/System.Runtime.xml", - "ref/netstandard1.5/es/System.Runtime.xml", - "ref/netstandard1.5/fr/System.Runtime.xml", - "ref/netstandard1.5/it/System.Runtime.xml", - "ref/netstandard1.5/ja/System.Runtime.xml", - "ref/netstandard1.5/ko/System.Runtime.xml", - "ref/netstandard1.5/ru/System.Runtime.xml", - "ref/netstandard1.5/zh-hans/System.Runtime.xml", - "ref/netstandard1.5/zh-hant/System.Runtime.xml", - "ref/portable-net45+win8+wp80+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.4.3.0.nupkg.sha512", - "system.runtime.nuspec" - ] - }, - "System.Runtime.Extensions/4.3.0": { - "sha512": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", - "type": "package", - "path": "system.runtime.extensions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Runtime.Extensions.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Runtime.Extensions.dll", - "ref/netcore50/System.Runtime.Extensions.dll", - "ref/netcore50/System.Runtime.Extensions.xml", - "ref/netcore50/de/System.Runtime.Extensions.xml", - "ref/netcore50/es/System.Runtime.Extensions.xml", - "ref/netcore50/fr/System.Runtime.Extensions.xml", - "ref/netcore50/it/System.Runtime.Extensions.xml", - "ref/netcore50/ja/System.Runtime.Extensions.xml", - "ref/netcore50/ko/System.Runtime.Extensions.xml", - "ref/netcore50/ru/System.Runtime.Extensions.xml", - "ref/netcore50/zh-hans/System.Runtime.Extensions.xml", - "ref/netcore50/zh-hant/System.Runtime.Extensions.xml", - "ref/netstandard1.0/System.Runtime.Extensions.dll", - "ref/netstandard1.0/System.Runtime.Extensions.xml", - "ref/netstandard1.0/de/System.Runtime.Extensions.xml", - "ref/netstandard1.0/es/System.Runtime.Extensions.xml", - "ref/netstandard1.0/fr/System.Runtime.Extensions.xml", - "ref/netstandard1.0/it/System.Runtime.Extensions.xml", - "ref/netstandard1.0/ja/System.Runtime.Extensions.xml", - "ref/netstandard1.0/ko/System.Runtime.Extensions.xml", - "ref/netstandard1.0/ru/System.Runtime.Extensions.xml", - "ref/netstandard1.0/zh-hans/System.Runtime.Extensions.xml", - "ref/netstandard1.0/zh-hant/System.Runtime.Extensions.xml", - "ref/netstandard1.3/System.Runtime.Extensions.dll", - "ref/netstandard1.3/System.Runtime.Extensions.xml", - "ref/netstandard1.3/de/System.Runtime.Extensions.xml", - "ref/netstandard1.3/es/System.Runtime.Extensions.xml", - "ref/netstandard1.3/fr/System.Runtime.Extensions.xml", - "ref/netstandard1.3/it/System.Runtime.Extensions.xml", - "ref/netstandard1.3/ja/System.Runtime.Extensions.xml", - "ref/netstandard1.3/ko/System.Runtime.Extensions.xml", - "ref/netstandard1.3/ru/System.Runtime.Extensions.xml", - "ref/netstandard1.3/zh-hans/System.Runtime.Extensions.xml", - "ref/netstandard1.3/zh-hant/System.Runtime.Extensions.xml", - "ref/netstandard1.5/System.Runtime.Extensions.dll", - "ref/netstandard1.5/System.Runtime.Extensions.xml", - "ref/netstandard1.5/de/System.Runtime.Extensions.xml", - "ref/netstandard1.5/es/System.Runtime.Extensions.xml", - "ref/netstandard1.5/fr/System.Runtime.Extensions.xml", - "ref/netstandard1.5/it/System.Runtime.Extensions.xml", - "ref/netstandard1.5/ja/System.Runtime.Extensions.xml", - "ref/netstandard1.5/ko/System.Runtime.Extensions.xml", - "ref/netstandard1.5/ru/System.Runtime.Extensions.xml", - "ref/netstandard1.5/zh-hans/System.Runtime.Extensions.xml", - "ref/netstandard1.5/zh-hant/System.Runtime.Extensions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.extensions.4.3.0.nupkg.sha512", - "system.runtime.extensions.nuspec" - ] - }, - "System.Runtime.Handles/4.3.0": { - "sha512": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", - "type": "package", - "path": "system.runtime.handles/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/_._", - "ref/netstandard1.3/System.Runtime.Handles.dll", - "ref/netstandard1.3/System.Runtime.Handles.xml", - "ref/netstandard1.3/de/System.Runtime.Handles.xml", - "ref/netstandard1.3/es/System.Runtime.Handles.xml", - "ref/netstandard1.3/fr/System.Runtime.Handles.xml", - "ref/netstandard1.3/it/System.Runtime.Handles.xml", - "ref/netstandard1.3/ja/System.Runtime.Handles.xml", - "ref/netstandard1.3/ko/System.Runtime.Handles.xml", - "ref/netstandard1.3/ru/System.Runtime.Handles.xml", - "ref/netstandard1.3/zh-hans/System.Runtime.Handles.xml", - "ref/netstandard1.3/zh-hant/System.Runtime.Handles.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.handles.4.3.0.nupkg.sha512", - "system.runtime.handles.nuspec" - ] - }, - "System.Runtime.InteropServices/4.3.0": { - "sha512": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "type": "package", - "path": "system.runtime.interopservices/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net462/System.Runtime.InteropServices.dll", - "lib/net463/System.Runtime.InteropServices.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net462/System.Runtime.InteropServices.dll", - "ref/net463/System.Runtime.InteropServices.dll", - "ref/netcore50/System.Runtime.InteropServices.dll", - "ref/netcore50/System.Runtime.InteropServices.xml", - "ref/netcore50/de/System.Runtime.InteropServices.xml", - "ref/netcore50/es/System.Runtime.InteropServices.xml", - "ref/netcore50/fr/System.Runtime.InteropServices.xml", - "ref/netcore50/it/System.Runtime.InteropServices.xml", - "ref/netcore50/ja/System.Runtime.InteropServices.xml", - "ref/netcore50/ko/System.Runtime.InteropServices.xml", - "ref/netcore50/ru/System.Runtime.InteropServices.xml", - "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml", - "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml", - "ref/netcoreapp1.1/System.Runtime.InteropServices.dll", - "ref/netstandard1.1/System.Runtime.InteropServices.dll", - "ref/netstandard1.1/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.1/zh-hant/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/System.Runtime.InteropServices.dll", - "ref/netstandard1.2/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.2/zh-hant/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/System.Runtime.InteropServices.dll", - "ref/netstandard1.3/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.3/zh-hant/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/System.Runtime.InteropServices.dll", - "ref/netstandard1.5/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/de/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/es/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/fr/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/it/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/ja/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/ko/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/ru/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/zh-hans/System.Runtime.InteropServices.xml", - "ref/netstandard1.5/zh-hant/System.Runtime.InteropServices.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.interopservices.4.3.0.nupkg.sha512", - "system.runtime.interopservices.nuspec" - ] - }, - "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { - "sha512": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", - "type": "package", - "path": "system.runtime.interopservices.runtimeinformation/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", - "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", - "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512", - "system.runtime.interopservices.runtimeinformation.nuspec" - ] - }, - "System.Runtime.Numerics/4.3.0": { - "sha512": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", - "type": "package", - "path": "system.runtime.numerics/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Runtime.Numerics.dll", - "lib/netstandard1.3/System.Runtime.Numerics.dll", - "lib/portable-net45+win8+wpa81/_._", - "lib/win8/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Runtime.Numerics.dll", - "ref/netcore50/System.Runtime.Numerics.xml", - "ref/netcore50/de/System.Runtime.Numerics.xml", - "ref/netcore50/es/System.Runtime.Numerics.xml", - "ref/netcore50/fr/System.Runtime.Numerics.xml", - "ref/netcore50/it/System.Runtime.Numerics.xml", - "ref/netcore50/ja/System.Runtime.Numerics.xml", - "ref/netcore50/ko/System.Runtime.Numerics.xml", - "ref/netcore50/ru/System.Runtime.Numerics.xml", - "ref/netcore50/zh-hans/System.Runtime.Numerics.xml", - "ref/netcore50/zh-hant/System.Runtime.Numerics.xml", - "ref/netstandard1.1/System.Runtime.Numerics.dll", - "ref/netstandard1.1/System.Runtime.Numerics.xml", - "ref/netstandard1.1/de/System.Runtime.Numerics.xml", - "ref/netstandard1.1/es/System.Runtime.Numerics.xml", - "ref/netstandard1.1/fr/System.Runtime.Numerics.xml", - "ref/netstandard1.1/it/System.Runtime.Numerics.xml", - "ref/netstandard1.1/ja/System.Runtime.Numerics.xml", - "ref/netstandard1.1/ko/System.Runtime.Numerics.xml", - "ref/netstandard1.1/ru/System.Runtime.Numerics.xml", - "ref/netstandard1.1/zh-hans/System.Runtime.Numerics.xml", - "ref/netstandard1.1/zh-hant/System.Runtime.Numerics.xml", - "ref/portable-net45+win8+wpa81/_._", - "ref/win8/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.runtime.numerics.4.3.0.nupkg.sha512", - "system.runtime.numerics.nuspec" - ] - }, - "System.Security.Cryptography.Algorithms/4.3.0": { - "sha512": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "type": "package", - "path": "system.security.cryptography.algorithms/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Security.Cryptography.Algorithms.dll", - "lib/net461/System.Security.Cryptography.Algorithms.dll", - "lib/net463/System.Security.Cryptography.Algorithms.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Security.Cryptography.Algorithms.dll", - "ref/net461/System.Security.Cryptography.Algorithms.dll", - "ref/net463/System.Security.Cryptography.Algorithms.dll", - "ref/netstandard1.3/System.Security.Cryptography.Algorithms.dll", - "ref/netstandard1.4/System.Security.Cryptography.Algorithms.dll", - "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", - "runtimes/win/lib/net46/System.Security.Cryptography.Algorithms.dll", - "runtimes/win/lib/net461/System.Security.Cryptography.Algorithms.dll", - "runtimes/win/lib/net463/System.Security.Cryptography.Algorithms.dll", - "runtimes/win/lib/netcore50/System.Security.Cryptography.Algorithms.dll", - "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", - "system.security.cryptography.algorithms.4.3.0.nupkg.sha512", - "system.security.cryptography.algorithms.nuspec" - ] - }, - "System.Security.Cryptography.Cng/4.3.0": { - "sha512": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", - "type": "package", - "path": "system.security.cryptography.cng/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/net46/System.Security.Cryptography.Cng.dll", - "lib/net461/System.Security.Cryptography.Cng.dll", - "lib/net463/System.Security.Cryptography.Cng.dll", - "ref/net46/System.Security.Cryptography.Cng.dll", - "ref/net461/System.Security.Cryptography.Cng.dll", - "ref/net463/System.Security.Cryptography.Cng.dll", - "ref/netstandard1.3/System.Security.Cryptography.Cng.dll", - "ref/netstandard1.4/System.Security.Cryptography.Cng.dll", - "ref/netstandard1.6/System.Security.Cryptography.Cng.dll", - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Cng.dll", - "runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll", - "runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll", - "runtimes/win/lib/net463/System.Security.Cryptography.Cng.dll", - "runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll", - "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll", - "system.security.cryptography.cng.4.3.0.nupkg.sha512", - "system.security.cryptography.cng.nuspec" - ] - }, - "System.Security.Cryptography.Csp/4.3.0": { - "sha512": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", - "type": "package", - "path": "system.security.cryptography.csp/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Security.Cryptography.Csp.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Security.Cryptography.Csp.dll", - "ref/netstandard1.3/System.Security.Cryptography.Csp.dll", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll", - "runtimes/win/lib/net46/System.Security.Cryptography.Csp.dll", - "runtimes/win/lib/netcore50/_._", - "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll", - "system.security.cryptography.csp.4.3.0.nupkg.sha512", - "system.security.cryptography.csp.nuspec" - ] - }, - "System.Security.Cryptography.Encoding/4.3.0": { - "sha512": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", - "type": "package", - "path": "system.security.cryptography.encoding/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Security.Cryptography.Encoding.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Security.Cryptography.Encoding.dll", - "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll", - "ref/netstandard1.3/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/de/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/es/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/fr/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/it/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/ja/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/ko/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/ru/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/zh-hans/System.Security.Cryptography.Encoding.xml", - "ref/netstandard1.3/zh-hant/System.Security.Cryptography.Encoding.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", - "runtimes/win/lib/net46/System.Security.Cryptography.Encoding.dll", - "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", - "system.security.cryptography.encoding.4.3.0.nupkg.sha512", - "system.security.cryptography.encoding.nuspec" - ] - }, - "System.Security.Cryptography.OpenSsl/4.3.0": { - "sha512": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", - "type": "package", - "path": "system.security.cryptography.openssl/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", - "ref/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", - "system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "system.security.cryptography.openssl.nuspec" - ] - }, - "System.Security.Cryptography.Primitives/4.3.0": { - "sha512": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", - "type": "package", - "path": "system.security.cryptography.primitives/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Security.Cryptography.Primitives.dll", - "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Security.Cryptography.Primitives.dll", - "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.security.cryptography.primitives.4.3.0.nupkg.sha512", - "system.security.cryptography.primitives.nuspec" - ] - }, - "System.Security.Cryptography.X509Certificates/4.3.0": { - "sha512": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "type": "package", - "path": "system.security.cryptography.x509certificates/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net46/System.Security.Cryptography.X509Certificates.dll", - "lib/net461/System.Security.Cryptography.X509Certificates.dll", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net46/System.Security.Cryptography.X509Certificates.dll", - "ref/net461/System.Security.Cryptography.X509Certificates.dll", - "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.dll", - "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/de/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/es/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/fr/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/it/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/ja/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/ko/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/ru/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/zh-hans/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.3/zh-hant/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll", - "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/de/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/es/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/fr/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/it/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/ja/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/ko/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/ru/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/zh-hans/System.Security.Cryptography.X509Certificates.xml", - "ref/netstandard1.4/zh-hant/System.Security.Cryptography.X509Certificates.xml", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll", - "runtimes/win/lib/net46/System.Security.Cryptography.X509Certificates.dll", - "runtimes/win/lib/net461/System.Security.Cryptography.X509Certificates.dll", - "runtimes/win/lib/netcore50/System.Security.Cryptography.X509Certificates.dll", - "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll", - "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512", - "system.security.cryptography.x509certificates.nuspec" - ] - }, - "System.Text.Encoding/4.3.0": { - "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", - "type": "package", - "path": "system.text.encoding/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Text.Encoding.dll", - "ref/netcore50/System.Text.Encoding.xml", - "ref/netcore50/de/System.Text.Encoding.xml", - "ref/netcore50/es/System.Text.Encoding.xml", - "ref/netcore50/fr/System.Text.Encoding.xml", - "ref/netcore50/it/System.Text.Encoding.xml", - "ref/netcore50/ja/System.Text.Encoding.xml", - "ref/netcore50/ko/System.Text.Encoding.xml", - "ref/netcore50/ru/System.Text.Encoding.xml", - "ref/netcore50/zh-hans/System.Text.Encoding.xml", - "ref/netcore50/zh-hant/System.Text.Encoding.xml", - "ref/netstandard1.0/System.Text.Encoding.dll", - "ref/netstandard1.0/System.Text.Encoding.xml", - "ref/netstandard1.0/de/System.Text.Encoding.xml", - "ref/netstandard1.0/es/System.Text.Encoding.xml", - "ref/netstandard1.0/fr/System.Text.Encoding.xml", - "ref/netstandard1.0/it/System.Text.Encoding.xml", - "ref/netstandard1.0/ja/System.Text.Encoding.xml", - "ref/netstandard1.0/ko/System.Text.Encoding.xml", - "ref/netstandard1.0/ru/System.Text.Encoding.xml", - "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml", - "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml", - "ref/netstandard1.3/System.Text.Encoding.dll", - "ref/netstandard1.3/System.Text.Encoding.xml", - "ref/netstandard1.3/de/System.Text.Encoding.xml", - "ref/netstandard1.3/es/System.Text.Encoding.xml", - "ref/netstandard1.3/fr/System.Text.Encoding.xml", - "ref/netstandard1.3/it/System.Text.Encoding.xml", - "ref/netstandard1.3/ja/System.Text.Encoding.xml", - "ref/netstandard1.3/ko/System.Text.Encoding.xml", - "ref/netstandard1.3/ru/System.Text.Encoding.xml", - "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml", - "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.text.encoding.4.3.0.nupkg.sha512", - "system.text.encoding.nuspec" - ] - }, - "System.Text.Encoding.Extensions/4.3.0": { - "sha512": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", - "type": "package", - "path": "system.text.encoding.extensions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Text.Encoding.Extensions.dll", - "ref/netcore50/System.Text.Encoding.Extensions.xml", - "ref/netcore50/de/System.Text.Encoding.Extensions.xml", - "ref/netcore50/es/System.Text.Encoding.Extensions.xml", - "ref/netcore50/fr/System.Text.Encoding.Extensions.xml", - "ref/netcore50/it/System.Text.Encoding.Extensions.xml", - "ref/netcore50/ja/System.Text.Encoding.Extensions.xml", - "ref/netcore50/ko/System.Text.Encoding.Extensions.xml", - "ref/netcore50/ru/System.Text.Encoding.Extensions.xml", - "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml", - "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/System.Text.Encoding.Extensions.dll", - "ref/netstandard1.0/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/de/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/es/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/fr/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/it/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/ja/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/ko/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/ru/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/zh-hans/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.0/zh-hant/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/System.Text.Encoding.Extensions.dll", - "ref/netstandard1.3/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/de/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/es/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/fr/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/it/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/ja/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/ko/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/ru/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/zh-hans/System.Text.Encoding.Extensions.xml", - "ref/netstandard1.3/zh-hant/System.Text.Encoding.Extensions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.text.encoding.extensions.4.3.0.nupkg.sha512", - "system.text.encoding.extensions.nuspec" - ] - }, - "System.Text.Encodings.Web/8.0.0": { - "sha512": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", - "type": "package", - "path": "system.text.encodings.web/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Text.Encodings.Web.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets", - "lib/net462/System.Text.Encodings.Web.dll", - "lib/net462/System.Text.Encodings.Web.xml", - "lib/net6.0/System.Text.Encodings.Web.dll", - "lib/net6.0/System.Text.Encodings.Web.xml", - "lib/net7.0/System.Text.Encodings.Web.dll", - "lib/net7.0/System.Text.Encodings.Web.xml", - "lib/net8.0/System.Text.Encodings.Web.dll", - "lib/net8.0/System.Text.Encodings.Web.xml", - "lib/netstandard2.0/System.Text.Encodings.Web.dll", - "lib/netstandard2.0/System.Text.Encodings.Web.xml", - "runtimes/browser/lib/net6.0/System.Text.Encodings.Web.dll", - "runtimes/browser/lib/net6.0/System.Text.Encodings.Web.xml", - "runtimes/browser/lib/net7.0/System.Text.Encodings.Web.dll", - "runtimes/browser/lib/net7.0/System.Text.Encodings.Web.xml", - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll", - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml", - "system.text.encodings.web.8.0.0.nupkg.sha512", - "system.text.encodings.web.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Text.RegularExpressions/4.3.0": { - "sha512": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", - "type": "package", - "path": "system.text.regularexpressions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net463/System.Text.RegularExpressions.dll", - "lib/netcore50/System.Text.RegularExpressions.dll", - "lib/netstandard1.6/System.Text.RegularExpressions.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net463/System.Text.RegularExpressions.dll", - "ref/netcore50/System.Text.RegularExpressions.dll", - "ref/netcore50/System.Text.RegularExpressions.xml", - "ref/netcore50/de/System.Text.RegularExpressions.xml", - "ref/netcore50/es/System.Text.RegularExpressions.xml", - "ref/netcore50/fr/System.Text.RegularExpressions.xml", - "ref/netcore50/it/System.Text.RegularExpressions.xml", - "ref/netcore50/ja/System.Text.RegularExpressions.xml", - "ref/netcore50/ko/System.Text.RegularExpressions.xml", - "ref/netcore50/ru/System.Text.RegularExpressions.xml", - "ref/netcore50/zh-hans/System.Text.RegularExpressions.xml", - "ref/netcore50/zh-hant/System.Text.RegularExpressions.xml", - "ref/netcoreapp1.1/System.Text.RegularExpressions.dll", - "ref/netstandard1.0/System.Text.RegularExpressions.dll", - "ref/netstandard1.0/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/de/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/es/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/fr/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/it/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/ja/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/ko/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/ru/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/zh-hans/System.Text.RegularExpressions.xml", - "ref/netstandard1.0/zh-hant/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/System.Text.RegularExpressions.dll", - "ref/netstandard1.3/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/de/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/es/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/fr/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/it/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/ja/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/ko/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/ru/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/zh-hans/System.Text.RegularExpressions.xml", - "ref/netstandard1.3/zh-hant/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/System.Text.RegularExpressions.dll", - "ref/netstandard1.6/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/de/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/es/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/fr/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/it/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/ja/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/ko/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/ru/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/zh-hans/System.Text.RegularExpressions.xml", - "ref/netstandard1.6/zh-hant/System.Text.RegularExpressions.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.text.regularexpressions.4.3.0.nupkg.sha512", - "system.text.regularexpressions.nuspec" - ] - }, - "System.Threading/4.3.0": { - "sha512": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", - "type": "package", - "path": "system.threading/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Threading.dll", - "lib/netstandard1.3/System.Threading.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Threading.dll", - "ref/netcore50/System.Threading.xml", - "ref/netcore50/de/System.Threading.xml", - "ref/netcore50/es/System.Threading.xml", - "ref/netcore50/fr/System.Threading.xml", - "ref/netcore50/it/System.Threading.xml", - "ref/netcore50/ja/System.Threading.xml", - "ref/netcore50/ko/System.Threading.xml", - "ref/netcore50/ru/System.Threading.xml", - "ref/netcore50/zh-hans/System.Threading.xml", - "ref/netcore50/zh-hant/System.Threading.xml", - "ref/netstandard1.0/System.Threading.dll", - "ref/netstandard1.0/System.Threading.xml", - "ref/netstandard1.0/de/System.Threading.xml", - "ref/netstandard1.0/es/System.Threading.xml", - "ref/netstandard1.0/fr/System.Threading.xml", - "ref/netstandard1.0/it/System.Threading.xml", - "ref/netstandard1.0/ja/System.Threading.xml", - "ref/netstandard1.0/ko/System.Threading.xml", - "ref/netstandard1.0/ru/System.Threading.xml", - "ref/netstandard1.0/zh-hans/System.Threading.xml", - "ref/netstandard1.0/zh-hant/System.Threading.xml", - "ref/netstandard1.3/System.Threading.dll", - "ref/netstandard1.3/System.Threading.xml", - "ref/netstandard1.3/de/System.Threading.xml", - "ref/netstandard1.3/es/System.Threading.xml", - "ref/netstandard1.3/fr/System.Threading.xml", - "ref/netstandard1.3/it/System.Threading.xml", - "ref/netstandard1.3/ja/System.Threading.xml", - "ref/netstandard1.3/ko/System.Threading.xml", - "ref/netstandard1.3/ru/System.Threading.xml", - "ref/netstandard1.3/zh-hans/System.Threading.xml", - "ref/netstandard1.3/zh-hant/System.Threading.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "runtimes/aot/lib/netcore50/System.Threading.dll", - "system.threading.4.3.0.nupkg.sha512", - "system.threading.nuspec" - ] - }, - "System.Threading.Channels/8.0.0": { - "sha512": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", - "type": "package", - "path": "system.threading.channels/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Threading.Channels.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", - "lib/net462/System.Threading.Channels.dll", - "lib/net462/System.Threading.Channels.xml", - "lib/net6.0/System.Threading.Channels.dll", - "lib/net6.0/System.Threading.Channels.xml", - "lib/net7.0/System.Threading.Channels.dll", - "lib/net7.0/System.Threading.Channels.xml", - "lib/net8.0/System.Threading.Channels.dll", - "lib/net8.0/System.Threading.Channels.xml", - "lib/netstandard2.0/System.Threading.Channels.dll", - "lib/netstandard2.0/System.Threading.Channels.xml", - "lib/netstandard2.1/System.Threading.Channels.dll", - "lib/netstandard2.1/System.Threading.Channels.xml", - "system.threading.channels.8.0.0.nupkg.sha512", - "system.threading.channels.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Threading.RateLimiting/8.0.0": { - "sha512": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q==", - "type": "package", - "path": "system.threading.ratelimiting/8.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Threading.RateLimiting.targets", - "buildTransitive/net462/_._", - "buildTransitive/net6.0/_._", - "buildTransitive/netcoreapp2.0/System.Threading.RateLimiting.targets", - "lib/net462/System.Threading.RateLimiting.dll", - "lib/net462/System.Threading.RateLimiting.xml", - "lib/net6.0/System.Threading.RateLimiting.dll", - "lib/net6.0/System.Threading.RateLimiting.xml", - "lib/net7.0/System.Threading.RateLimiting.dll", - "lib/net7.0/System.Threading.RateLimiting.xml", - "lib/net8.0/System.Threading.RateLimiting.dll", - "lib/net8.0/System.Threading.RateLimiting.xml", - "lib/netstandard2.0/System.Threading.RateLimiting.dll", - "lib/netstandard2.0/System.Threading.RateLimiting.xml", - "system.threading.ratelimiting.8.0.0.nupkg.sha512", - "system.threading.ratelimiting.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Threading.Tasks/4.3.0": { - "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", - "type": "package", - "path": "system.threading.tasks/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Threading.Tasks.dll", - "ref/netcore50/System.Threading.Tasks.xml", - "ref/netcore50/de/System.Threading.Tasks.xml", - "ref/netcore50/es/System.Threading.Tasks.xml", - "ref/netcore50/fr/System.Threading.Tasks.xml", - "ref/netcore50/it/System.Threading.Tasks.xml", - "ref/netcore50/ja/System.Threading.Tasks.xml", - "ref/netcore50/ko/System.Threading.Tasks.xml", - "ref/netcore50/ru/System.Threading.Tasks.xml", - "ref/netcore50/zh-hans/System.Threading.Tasks.xml", - "ref/netcore50/zh-hant/System.Threading.Tasks.xml", - "ref/netstandard1.0/System.Threading.Tasks.dll", - "ref/netstandard1.0/System.Threading.Tasks.xml", - "ref/netstandard1.0/de/System.Threading.Tasks.xml", - "ref/netstandard1.0/es/System.Threading.Tasks.xml", - "ref/netstandard1.0/fr/System.Threading.Tasks.xml", - "ref/netstandard1.0/it/System.Threading.Tasks.xml", - "ref/netstandard1.0/ja/System.Threading.Tasks.xml", - "ref/netstandard1.0/ko/System.Threading.Tasks.xml", - "ref/netstandard1.0/ru/System.Threading.Tasks.xml", - "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml", - "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml", - "ref/netstandard1.3/System.Threading.Tasks.dll", - "ref/netstandard1.3/System.Threading.Tasks.xml", - "ref/netstandard1.3/de/System.Threading.Tasks.xml", - "ref/netstandard1.3/es/System.Threading.Tasks.xml", - "ref/netstandard1.3/fr/System.Threading.Tasks.xml", - "ref/netstandard1.3/it/System.Threading.Tasks.xml", - "ref/netstandard1.3/ja/System.Threading.Tasks.xml", - "ref/netstandard1.3/ko/System.Threading.Tasks.xml", - "ref/netstandard1.3/ru/System.Threading.Tasks.xml", - "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml", - "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.threading.tasks.4.3.0.nupkg.sha512", - "system.threading.tasks.nuspec" - ] - }, - "System.Threading.Tasks.Extensions/4.3.0": { - "sha512": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", - "type": "package", - "path": "system.threading.tasks.extensions/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll", - "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml", - "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll", - "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml", - "system.threading.tasks.extensions.4.3.0.nupkg.sha512", - "system.threading.tasks.extensions.nuspec" - ] - }, - "System.Threading.Timer/4.3.0": { - "sha512": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", - "type": "package", - "path": "system.threading.timer/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net451/_._", - "lib/portable-net451+win81+wpa81/_._", - "lib/win81/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net451/_._", - "ref/netcore50/System.Threading.Timer.dll", - "ref/netcore50/System.Threading.Timer.xml", - "ref/netcore50/de/System.Threading.Timer.xml", - "ref/netcore50/es/System.Threading.Timer.xml", - "ref/netcore50/fr/System.Threading.Timer.xml", - "ref/netcore50/it/System.Threading.Timer.xml", - "ref/netcore50/ja/System.Threading.Timer.xml", - "ref/netcore50/ko/System.Threading.Timer.xml", - "ref/netcore50/ru/System.Threading.Timer.xml", - "ref/netcore50/zh-hans/System.Threading.Timer.xml", - "ref/netcore50/zh-hant/System.Threading.Timer.xml", - "ref/netstandard1.2/System.Threading.Timer.dll", - "ref/netstandard1.2/System.Threading.Timer.xml", - "ref/netstandard1.2/de/System.Threading.Timer.xml", - "ref/netstandard1.2/es/System.Threading.Timer.xml", - "ref/netstandard1.2/fr/System.Threading.Timer.xml", - "ref/netstandard1.2/it/System.Threading.Timer.xml", - "ref/netstandard1.2/ja/System.Threading.Timer.xml", - "ref/netstandard1.2/ko/System.Threading.Timer.xml", - "ref/netstandard1.2/ru/System.Threading.Timer.xml", - "ref/netstandard1.2/zh-hans/System.Threading.Timer.xml", - "ref/netstandard1.2/zh-hant/System.Threading.Timer.xml", - "ref/portable-net451+win81+wpa81/_._", - "ref/win81/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.threading.timer.4.3.0.nupkg.sha512", - "system.threading.timer.nuspec" - ] - }, - "System.Xml.ReaderWriter/4.3.0": { - "sha512": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", - "type": "package", - "path": "system.xml.readerwriter/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/net46/System.Xml.ReaderWriter.dll", - "lib/netcore50/System.Xml.ReaderWriter.dll", - "lib/netstandard1.3/System.Xml.ReaderWriter.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/net46/System.Xml.ReaderWriter.dll", - "ref/netcore50/System.Xml.ReaderWriter.dll", - "ref/netcore50/System.Xml.ReaderWriter.xml", - "ref/netcore50/de/System.Xml.ReaderWriter.xml", - "ref/netcore50/es/System.Xml.ReaderWriter.xml", - "ref/netcore50/fr/System.Xml.ReaderWriter.xml", - "ref/netcore50/it/System.Xml.ReaderWriter.xml", - "ref/netcore50/ja/System.Xml.ReaderWriter.xml", - "ref/netcore50/ko/System.Xml.ReaderWriter.xml", - "ref/netcore50/ru/System.Xml.ReaderWriter.xml", - "ref/netcore50/zh-hans/System.Xml.ReaderWriter.xml", - "ref/netcore50/zh-hant/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/System.Xml.ReaderWriter.dll", - "ref/netstandard1.0/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/de/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/es/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/fr/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/it/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/ja/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/ko/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/ru/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/zh-hans/System.Xml.ReaderWriter.xml", - "ref/netstandard1.0/zh-hant/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/System.Xml.ReaderWriter.dll", - "ref/netstandard1.3/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/de/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/es/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/fr/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/it/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/ja/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/ko/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/ru/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/zh-hans/System.Xml.ReaderWriter.xml", - "ref/netstandard1.3/zh-hant/System.Xml.ReaderWriter.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.xml.readerwriter.4.3.0.nupkg.sha512", - "system.xml.readerwriter.nuspec" - ] - }, - "System.Xml.XDocument/4.3.0": { - "sha512": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", - "type": "package", - "path": "system.xml.xdocument/4.3.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "ThirdPartyNotices.txt", - "dotnet_library_license.txt", - "lib/MonoAndroid10/_._", - "lib/MonoTouch10/_._", - "lib/net45/_._", - "lib/netcore50/System.Xml.XDocument.dll", - "lib/netstandard1.3/System.Xml.XDocument.dll", - "lib/portable-net45+win8+wp8+wpa81/_._", - "lib/win8/_._", - "lib/wp80/_._", - "lib/wpa81/_._", - "lib/xamarinios10/_._", - "lib/xamarinmac20/_._", - "lib/xamarintvos10/_._", - "lib/xamarinwatchos10/_._", - "ref/MonoAndroid10/_._", - "ref/MonoTouch10/_._", - "ref/net45/_._", - "ref/netcore50/System.Xml.XDocument.dll", - "ref/netcore50/System.Xml.XDocument.xml", - "ref/netcore50/de/System.Xml.XDocument.xml", - "ref/netcore50/es/System.Xml.XDocument.xml", - "ref/netcore50/fr/System.Xml.XDocument.xml", - "ref/netcore50/it/System.Xml.XDocument.xml", - "ref/netcore50/ja/System.Xml.XDocument.xml", - "ref/netcore50/ko/System.Xml.XDocument.xml", - "ref/netcore50/ru/System.Xml.XDocument.xml", - "ref/netcore50/zh-hans/System.Xml.XDocument.xml", - "ref/netcore50/zh-hant/System.Xml.XDocument.xml", - "ref/netstandard1.0/System.Xml.XDocument.dll", - "ref/netstandard1.0/System.Xml.XDocument.xml", - "ref/netstandard1.0/de/System.Xml.XDocument.xml", - "ref/netstandard1.0/es/System.Xml.XDocument.xml", - "ref/netstandard1.0/fr/System.Xml.XDocument.xml", - "ref/netstandard1.0/it/System.Xml.XDocument.xml", - "ref/netstandard1.0/ja/System.Xml.XDocument.xml", - "ref/netstandard1.0/ko/System.Xml.XDocument.xml", - "ref/netstandard1.0/ru/System.Xml.XDocument.xml", - "ref/netstandard1.0/zh-hans/System.Xml.XDocument.xml", - "ref/netstandard1.0/zh-hant/System.Xml.XDocument.xml", - "ref/netstandard1.3/System.Xml.XDocument.dll", - "ref/netstandard1.3/System.Xml.XDocument.xml", - "ref/netstandard1.3/de/System.Xml.XDocument.xml", - "ref/netstandard1.3/es/System.Xml.XDocument.xml", - "ref/netstandard1.3/fr/System.Xml.XDocument.xml", - "ref/netstandard1.3/it/System.Xml.XDocument.xml", - "ref/netstandard1.3/ja/System.Xml.XDocument.xml", - "ref/netstandard1.3/ko/System.Xml.XDocument.xml", - "ref/netstandard1.3/ru/System.Xml.XDocument.xml", - "ref/netstandard1.3/zh-hans/System.Xml.XDocument.xml", - "ref/netstandard1.3/zh-hant/System.Xml.XDocument.xml", - "ref/portable-net45+win8+wp8+wpa81/_._", - "ref/win8/_._", - "ref/wp80/_._", - "ref/wpa81/_._", - "ref/xamarinios10/_._", - "ref/xamarinmac20/_._", - "ref/xamarintvos10/_._", - "ref/xamarinwatchos10/_._", - "system.xml.xdocument.4.3.0.nupkg.sha512", - "system.xml.xdocument.nuspec" - ] - }, - "xunit/2.5.3": { - "sha512": "VxYDiWSwrLxOJ3UEN+ZPrBybB0SFShQ1E6PjT65VdoKCJhorgerFznThjSwawRH/WAip73YnucDVsE8WRj/8KQ==", - "type": "package", - "path": "xunit/2.5.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "_content/README.md", - "_content/logo-128-transparent.png", - "xunit.2.5.3.nupkg.sha512", - "xunit.nuspec" - ] - }, - "xunit.abstractions/2.0.3": { - "sha512": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", - "type": "package", - "path": "xunit.abstractions/2.0.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "lib/net35/xunit.abstractions.dll", - "lib/net35/xunit.abstractions.xml", - "lib/netstandard1.0/xunit.abstractions.dll", - "lib/netstandard1.0/xunit.abstractions.xml", - "lib/netstandard2.0/xunit.abstractions.dll", - "lib/netstandard2.0/xunit.abstractions.xml", - "xunit.abstractions.2.0.3.nupkg.sha512", - "xunit.abstractions.nuspec" - ] - }, - "xunit.analyzers/1.4.0": { - "sha512": "7ljnTJfFjz5zK+Jf0h2dd2QOSO6UmFizXsojv/x4QX7TU5vEgtKZPk9RvpkiuUqg2bddtNZufBoKQalsi7djfA==", - "type": "package", - "path": "xunit.analyzers/1.4.0", - "hasTools": true, - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "_content/README.md", - "_content/logo-128-transparent.png", - "analyzers/dotnet/cs/xunit.analyzers.dll", - "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", - "tools/install.ps1", - "tools/uninstall.ps1", - "xunit.analyzers.1.4.0.nupkg.sha512", - "xunit.analyzers.nuspec" - ] - }, - "xunit.assert/2.5.3": { - "sha512": "MK3HiBckO3vdxEdUxXZyyRPsBNPsC/nz6y1gj/UZIZkjMnsVQyZPU8yxS/3cjTchYcqskt/nqUOS5wmD8JezdQ==", - "type": "package", - "path": "xunit.assert/2.5.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "_content/README.md", - "_content/logo-128-transparent.png", - "lib/netstandard1.1/xunit.assert.dll", - "lib/netstandard1.1/xunit.assert.xml", - "xunit.assert.2.5.3.nupkg.sha512", - "xunit.assert.nuspec" - ] - }, - "xunit.core/2.5.3": { - "sha512": "FE8yEEUkoMLd6kOHDXm/QYfX/dYzwc0c+Q4MQon6VGRwFuy6UVGwK/CFA5LEea+ZBEmcco7AEl2q78VjsA0j/w==", - "type": "package", - "path": "xunit.core/2.5.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "_content/README.md", - "_content/logo-128-transparent.png", - "build/xunit.core.props", - "build/xunit.core.targets", - "buildMultiTargeting/xunit.core.props", - "buildMultiTargeting/xunit.core.targets", - "xunit.core.2.5.3.nupkg.sha512", - "xunit.core.nuspec" - ] - }, - "xunit.extensibility.core/2.5.3": { - "sha512": "IjAQlPeZWXP89pl1EuOG9991GH1qgAL0rQfkmX2UV+PDenbYb7oBnQopL9ujE6YaXxgaQazp7lFjsDyyxD6Mtw==", - "type": "package", - "path": "xunit.extensibility.core/2.5.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "_content/README.md", - "_content/logo-128-transparent.png", - "lib/net452/xunit.core.dll", - "lib/net452/xunit.core.dll.tdnet", - "lib/net452/xunit.core.xml", - "lib/net452/xunit.runner.tdnet.dll", - "lib/net452/xunit.runner.utility.net452.dll", - "lib/netstandard1.1/xunit.core.dll", - "lib/netstandard1.1/xunit.core.xml", - "xunit.extensibility.core.2.5.3.nupkg.sha512", - "xunit.extensibility.core.nuspec" - ] - }, - "xunit.extensibility.execution/2.5.3": { - "sha512": "w9eGCHl+gJj1GzZSf0VTzYPp/gv4fiUDkr+yR7/Wv9/ucO2CHltGg2TnyySLFjzekkjuxVJZUE+tZyDNzryJFw==", - "type": "package", - "path": "xunit.extensibility.execution/2.5.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "_content/README.md", - "_content/logo-128-transparent.png", - "lib/net452/xunit.execution.desktop.dll", - "lib/net452/xunit.execution.desktop.xml", - "lib/netstandard1.1/xunit.execution.dotnet.dll", - "lib/netstandard1.1/xunit.execution.dotnet.xml", - "xunit.extensibility.execution.2.5.3.nupkg.sha512", - "xunit.extensibility.execution.nuspec" - ] - }, - "xunit.runner.visualstudio/2.5.3": { - "sha512": "HFFL6O+QLEOfs555SqHii48ovVa4CqGYanY+B32BjLpPptdE+wEJmCFNXlLHdEOD5LYeayb9EroaUpydGpcybg==", - "type": "package", - "path": "xunit.runner.visualstudio/2.5.3", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "_content/README.md", - "_content/logo-128-transparent.png", - "build/net462/xunit.abstractions.dll", - "build/net462/xunit.runner.reporters.net452.dll", - "build/net462/xunit.runner.utility.net452.dll", - "build/net462/xunit.runner.visualstudio.props", - "build/net462/xunit.runner.visualstudio.testadapter.dll", - "build/net6.0/xunit.abstractions.dll", - "build/net6.0/xunit.runner.reporters.netcoreapp10.dll", - "build/net6.0/xunit.runner.utility.netcoreapp10.dll", - "build/net6.0/xunit.runner.visualstudio.dotnetcore.testadapter.dll", - "build/net6.0/xunit.runner.visualstudio.props", - "lib/net462/_._", - "lib/net6.0/_._", - "xunit.runner.visualstudio.2.5.3.nupkg.sha512", - "xunit.runner.visualstudio.nuspec" - ] - }, - "IM_API/1.0.0": { - "type": "project", - "path": "../IM_API/IM_API.csproj", - "msbuildProject": "../IM_API/IM_API.csproj" - } - }, - "projectFileDependencyGroups": { - "net8.0": [ - "IM_API >= 1.0.0", - "Microsoft.EntityFrameworkCore.InMemory >= 8.0.22", - "Microsoft.NET.Test.Sdk >= 17.8.0", - "Moq >= 4.20.72", - "coverlet.collector >= 6.0.0", - "xunit >= 2.5.3", - "xunit.runner.visualstudio >= 2.5.3" - ] - }, - "packageFolders": { - "C:\\Users\\nanxun\\.nuget\\packages\\": {}, - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\IMTest.csproj", - "projectName": "IMTest", - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\IMTest.csproj", - "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", - "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\nanxun\\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": { - "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj": { - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj" - } - } - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.300" - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "dependencies": { - "Microsoft.EntityFrameworkCore.InMemory": { - "target": "Package", - "version": "[8.0.22, )" - }, - "Microsoft.NET.Test.Sdk": { - "target": "Package", - "version": "[17.8.0, )" - }, - "Moq": { - "target": "Package", - "version": "[4.20.72, )" - }, - "coverlet.collector": { - "target": "Package", - "version": "[6.0.0, )" - }, - "xunit": { - "target": "Package", - "version": "[2.5.3, )" - }, - "xunit.runner.visualstudio": { - "target": "Package", - "version": "[2.5.3, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" - } - } - } +{ + "version": 3, + "targets": { + "net8.0": { + "AutoMapper/12.0.1": { + "type": "package", + "dependencies": { + "Microsoft.CSharp": "4.7.0" + }, + "compile": { + "lib/netstandard2.1/AutoMapper.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/AutoMapper.dll": { + "related": ".xml" + } + } + }, + "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { + "type": "package", + "dependencies": { + "AutoMapper": "12.0.0", + "Microsoft.Extensions.Options": "6.0.0" + }, + "compile": { + "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": {} + }, + "runtime": { + "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": {} + } + }, + "Castle.Core/5.1.1": { + "type": "package", + "dependencies": { + "System.Diagnostics.EventLog": "6.0.0" + }, + "compile": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Castle.Core.dll": { + "related": ".xml" + } + } + }, + "coverlet.collector/6.0.0": { + "type": "package", + "build": { + "build/netstandard1.0/coverlet.collector.targets": {} + } + }, + "MassTransit/8.5.5": { + "type": "package", + "dependencies": { + "MassTransit.Abstractions": "8.5.5", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics.HealthChecks": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" + }, + "compile": { + "lib/net8.0/MassTransit.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MassTransit.dll": { + "related": ".xml" + } + } + }, + "MassTransit.Abstractions/8.5.5": { + "type": "package", + "compile": { + "lib/net8.0/MassTransit.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MassTransit.Abstractions.dll": { + "related": ".xml" + } + } + }, + "MassTransit.RabbitMQ/8.5.5": { + "type": "package", + "dependencies": { + "MassTransit": "8.5.5", + "RabbitMQ.Client": "7.1.2" + }, + "compile": { + "lib/net8.0/MassTransit.RabbitMqTransport.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MassTransit.RabbitMqTransport.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Protocols.OpenIdConnect": "7.1.2" + }, + "compile": { + "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.AspNetCore.Authorization/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Authentication.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Authorization": "2.3.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "System.IO.Pipelines": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.AspNetCore.WebUtilities": "2.3.0", + "Microsoft.Extensions.ObjectPool": "8.0.11", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Net.Http.Headers": "2.3.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Features": "2.3.0", + "System.Text.Encodings.Web": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections/1.2.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Authorization.Policy": "2.3.0", + "Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0", + "Microsoft.AspNetCore.Http": "2.3.0", + "Microsoft.AspNetCore.Http.Connections.Common": "1.2.0", + "Microsoft.AspNetCore.Routing": "2.3.0", + "Microsoft.AspNetCore.WebSockets": "2.3.0", + "Newtonsoft.Json": "11.0.2", + "System.Net.WebSockets.WebSocketProtocol": "5.1.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", + "Newtonsoft.Json": "11.0.2", + "System.Buffers": "4.6.0", + "System.IO.Pipelines": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Extensions/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Net.Http.Headers": "2.3.0", + "System.Buffers": "4.6.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Features/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Routing/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Extensions": "2.3.0", + "Microsoft.AspNetCore.Routing.Abstractions": "2.3.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.ObjectPool": "8.0.11", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Abstractions": "2.3.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR/1.2.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Connections": "1.2.0", + "Microsoft.AspNetCore.SignalR.Core": "1.2.0", + "Microsoft.AspNetCore.WebSockets": "2.3.0", + "System.IO.Pipelines": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/1.2.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "2.3.0", + "Microsoft.Extensions.Options": "8.0.2", + "Newtonsoft.Json": "11.0.2", + "System.Buffers": "4.6.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Core/1.2.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Authorization": "2.3.0", + "Microsoft.AspNetCore.SignalR.Common": "1.2.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "1.2.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "System.IO.Pipelines": "8.0.0", + "System.Reflection.Emit": "4.7.0", + "System.Threading.Channels": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "1.2.0", + "Newtonsoft.Json": "11.0.2", + "System.IO.Pipelines": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.WebSockets/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Extensions": "2.3.0", + "Microsoft.Extensions.Options": "8.0.2", + "System.Net.WebSockets.WebSocketProtocol": "5.1.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.WebUtilities/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.Net.Http.Headers": "2.3.0", + "System.Text.Encodings.Web": "8.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.0": { + "type": "package", + "compile": { + "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {} + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.CodeCoverage/17.8.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {} + }, + "build": { + "build/netstandard2.0/Microsoft.CodeCoverage.props": {}, + "build/netstandard2.0/Microsoft.CodeCoverage.targets": {} + } + }, + "Microsoft.CSharp/4.7.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore/8.0.22": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Abstractions": "8.0.22", + "Microsoft.EntityFrameworkCore.Analyzers": "8.0.22", + "Microsoft.Extensions.Caching.Memory": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props": {} + } + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": { + "type": "package", + "compile": { + "lib/netstandard2.0/_._": {} + }, + "runtime": { + "lib/netstandard2.0/_._": {} + } + }, + "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.22" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll": { + "related": ".xml" + } + } + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.13": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore": "8.0.13", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.ApiDescription.Server/6.0.5": { + "type": "package", + "build": { + "build/_._": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/_._": {} + } + }, + "Microsoft.Extensions.Caching.Abstractions/10.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Caching.Abstractions": "10.0.2", + "Microsoft.Extensions.Logging.Abstractions": "10.0.2", + "Microsoft.Extensions.Options": "10.0.2", + "StackExchange.Redis": "2.7.27" + }, + "compile": { + "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging/8.0.1": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "System.Diagnostics.DiagnosticSource": "10.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.ObjectPool/8.0.11": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.ObjectPool.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Options/10.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", + "Microsoft.Extensions.Primitives": "10.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/10.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.14.0" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Logging.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Protocols/7.1.2": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Logging": "7.1.2", + "Microsoft.IdentityModel.Tokens": "7.1.2" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.Protocols": "7.1.2", + "System.IdentityModel.Tokens.Jwt": "7.1.2" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": { + "related": ".xml" + } + } + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.IdentityModel.Logging": "8.14.0" + }, + "compile": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Net.Http.Headers/2.3.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0", + "System.Buffers": "4.6.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll": { + "related": ".xml" + } + } + }, + "Microsoft.NET.Test.Sdk/17.8.0": { + "type": "package", + "dependencies": { + "Microsoft.CodeCoverage": "17.8.0", + "Microsoft.TestPlatform.TestHost": "17.8.0" + }, + "compile": { + "lib/netcoreapp3.1/_._": {} + }, + "runtime": { + "lib/netcoreapp3.1/_._": {} + }, + "build": { + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props": {}, + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/Microsoft.NET.Test.Sdk.props": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "Microsoft.NETCore.Targets/1.1.0": { + "type": "package", + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "Microsoft.OpenApi/1.6.14": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + } + }, + "Microsoft.TestPlatform.ObjectModel/17.8.0": { + "type": "package", + "dependencies": { + "NuGet.Frameworks": "6.5.0", + "System.Reflection.Metadata": "1.6.0" + }, + "compile": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {} + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.TestPlatform.TestHost/17.8.0": { + "type": "package", + "dependencies": { + "Microsoft.TestPlatform.ObjectModel": "17.8.0", + "Newtonsoft.Json": "13.0.1" + }, + "compile": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/netcoreapp3.1/testhost.dll": { + "related": ".deps.json" + } + }, + "runtime": { + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {}, + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {}, + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}, + "lib/netcoreapp3.1/testhost.dll": { + "related": ".deps.json" + } + }, + "resource": { + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "cs" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "de" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "es" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "fr" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "it" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ja" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ko" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pl" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "pt-BR" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "ru" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "tr" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hans" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": { + "locale": "zh-Hant" + }, + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": { + "locale": "zh-Hant" + } + }, + "build": { + "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props": {} + } + }, + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { + "type": "package", + "build": { + "build/_._": {} + } + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/Microsoft.Win32.Primitives.dll": { + "related": ".xml" + } + } + }, + "Moq/4.20.72": { + "type": "package", + "dependencies": { + "Castle.Core": "5.1.1" + }, + "compile": { + "lib/net6.0/Moq.dll": {} + }, + "runtime": { + "lib/net6.0/Moq.dll": {} + } + }, + "MySqlConnector/2.3.5": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "7.0.1" + }, + "compile": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + } + }, + "NETStandard.Library/1.6.1": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.Win32.Primitives": "4.3.0", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Console": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.Compression.ZipFile": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Net.Http": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Net.Sockets": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Timer": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0" + } + }, + "Newtonsoft.Json/13.0.4": { + "type": "package", + "compile": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/Newtonsoft.Json.dll": { + "related": ".xml" + } + } + }, + "NuGet.Frameworks/6.5.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/NuGet.Frameworks.dll": {} + }, + "runtime": { + "lib/netstandard2.0/NuGet.Frameworks.dll": {} + } + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "5.0.1" + }, + "compile": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net5.0/Pipelines.Sockets.Unofficial.dll": { + "related": ".xml" + } + } + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.3": { + "type": "package", + "dependencies": { + "Microsoft.EntityFrameworkCore.Relational": "[8.0.13, 8.0.999]", + "MySqlConnector": "2.3.5" + }, + "compile": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll": { + "related": ".xml" + } + } + }, + "RabbitMQ.Client/7.1.2": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "8.0.0", + "System.Threading.RateLimiting": "8.0.0" + }, + "compile": { + "lib/net8.0/RabbitMQ.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/RabbitMQ.Client.dll": { + "related": ".xml" + } + } + }, + "RedLock.net/2.3.2": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.0", + "Microsoft.Extensions.Logging": "2.0.0", + "Microsoft.Extensions.Logging.Abstractions": "2.0.0", + "StackExchange.Redis": "2.0.513" + }, + "compile": { + "lib/netstandard2.0/RedLockNet.Abstractions.dll": {}, + "lib/netstandard2.0/RedLockNet.SERedis.dll": {} + }, + "runtime": { + "lib/netstandard2.0/RedLockNet.Abstractions.dll": {}, + "lib/netstandard2.0/RedLockNet.SERedis.dll": {} + } + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "debian.8-x64" + } + } + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "fedora.23-x64" + } + } + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "fedora.24-x64" + } + } + }, + "runtime.native.System/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "lib/netstandard1.0/_._": {} + }, + "runtime": { + "lib/netstandard1.0/_._": {} + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "opensuse.13.2-x64" + } + } + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "opensuse.42.1-x64" + } + } + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib": { + "assetType": "native", + "rid": "osx.10.10-x64" + } + } + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib": { + "assetType": "native", + "rid": "osx.10.10-x64" + } + } + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "rhel.7-x64" + } + } + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "ubuntu.14.04-x64" + } + } + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "ubuntu.16.04-x64" + } + } + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "runtimeTargets": { + "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so": { + "assetType": "native", + "rid": "ubuntu.16.10-x64" + } + } + }, + "StackExchange.Redis/2.9.32": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Pipelines.Sockets.Unofficial": "2.2.8" + }, + "compile": { + "lib/net8.0/StackExchange.Redis.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/StackExchange.Redis.dll": { + "related": ".xml" + } + } + }, + "Swashbuckle.AspNetCore/6.6.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.ApiDescription.Server": "6.0.5", + "Swashbuckle.AspNetCore.Swagger": "6.6.2", + "Swashbuckle.AspNetCore.SwaggerGen": "6.6.2", + "Swashbuckle.AspNetCore.SwaggerUI": "6.6.2" + }, + "build": { + "build/_._": {} + } + }, + "Swashbuckle.AspNetCore.Swagger/6.6.2": { + "type": "package", + "dependencies": { + "Microsoft.OpenApi": "1.6.14" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { + "type": "package", + "dependencies": { + "Swashbuckle.AspNetCore.Swagger": "6.6.2" + }, + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": { + "related": ".pdb;.xml" + } + } + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { + "type": "package", + "compile": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": { + "related": ".pdb;.xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "System.AppContext/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.AppContext.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.6/System.AppContext.dll": {} + } + }, + "System.Buffers/4.6.0": { + "type": "package", + "compile": { + "lib/netcoreapp2.1/_._": {} + }, + "runtime": { + "lib/netcoreapp2.1/_._": {} + } + }, + "System.Collections/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Collections.dll": { + "related": ".xml" + } + } + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Collections.Concurrent.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Concurrent.dll": {} + } + }, + "System.Console/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Console.dll": { + "related": ".xml" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Diagnostics.Debug.dll": { + "related": ".xml" + } + } + }, + "System.Diagnostics.DiagnosticSource/10.0.2": { + "type": "package", + "compile": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Diagnostics.EventLog/6.0.0": { + "type": "package", + "compile": { + "lib/net6.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Diagnostics.EventLog.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/netcoreapp3.1/_._": {} + }, + "runtimeTargets": { + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.Messages.dll": { + "assetType": "runtime", + "rid": "win" + }, + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Diagnostics.Tools.dll": { + "related": ".xml" + } + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.Diagnostics.Tracing.dll": { + "related": ".xml" + } + } + }, + "System.Globalization/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Globalization.dll": { + "related": ".xml" + } + } + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Globalization.Calendars.dll": { + "related": ".xml" + } + } + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/_._": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.IdentityModel.Tokens.Jwt/8.14.0": { + "type": "package", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.14.0", + "Microsoft.IdentityModel.Tokens": "8.14.0" + }, + "compile": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll": { + "related": ".xml" + } + } + }, + "System.IO/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.IO.dll": { + "related": ".xml" + } + } + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Buffers": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.Compression.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.IO.Compression.ZipFile/4.3.0": { + "type": "package", + "dependencies": { + "System.Buffers": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.Compression.ZipFile.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.FileSystem.dll": { + "related": ".xml" + } + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Linq/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.Linq.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.6/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.Linq.Expressions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.6/System.Linq.Expressions.dll": {} + } + }, + "System.Net.Http/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Net.Http.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Net.Http.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Net.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Net.Primitives.dll": { + "related": ".xml" + } + } + }, + "System.Net.Sockets/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Net.Sockets.dll": { + "related": ".xml" + } + } + }, + "System.Net.WebSockets.WebSocketProtocol/5.1.0": { + "type": "package", + "compile": { + "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.ObjectModel.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.ObjectModel.dll": {} + } + }, + "System.Reflection/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.Reflection.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Emit/4.7.0": { + "type": "package", + "compile": { + "ref/netcoreapp2.0/_._": {} + }, + "runtime": { + "lib/netcoreapp2.0/_._": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": {} + } + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Reflection.Extensions.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Metadata/1.6.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/System.Reflection.Metadata.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Reflection.Primitives.dll": { + "related": ".xml" + } + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.0/System.Resources.ResourceManager.dll": { + "related": ".xml" + } + } + }, + "System.Runtime/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + }, + "compile": { + "ref/netstandard1.5/System.Runtime.dll": { + "related": ".xml" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.5/System.Runtime.Extensions.dll": { + "related": ".xml" + } + } + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Runtime.Handles.dll": { + "related": ".xml" + } + } + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "compile": { + "ref/netcoreapp1.1/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "type": "package", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0" + }, + "compile": { + "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} + }, + "runtime": { + "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "compile": { + "ref/netstandard1.1/System.Runtime.Numerics.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Numerics.dll": {} + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll": {} + }, + "runtimeTargets": { + "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { + "assetType": "runtime", + "rid": "osx" + }, + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/_._": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Cng.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/_._": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.6/_._": {} + }, + "runtime": { + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": {} + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { + "assetType": "runtime", + "rid": "unix" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} + }, + "runtime": { + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": {} + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "compile": { + "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll": { + "related": ".xml" + } + }, + "runtimeTargets": { + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": { + "assetType": "runtime", + "rid": "unix" + }, + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll": { + "assetType": "runtime", + "rid": "win" + } + } + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Text.Encoding.dll": { + "related": ".xml" + } + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Text.Encoding.Extensions.dll": { + "related": ".xml" + } + } + }, + "System.Text.Encodings.Web/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + }, + "runtimeTargets": { + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { + "assetType": "runtime", + "rid": "browser" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netcoreapp1.1/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/netstandard1.6/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.3.0": { + "type": "package", + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Threading.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Threading.dll": {} + } + }, + "System.Threading.Channels/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Threading.RateLimiting/8.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Threading.RateLimiting.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Threading.RateLimiting.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Threading.Tasks.dll": { + "related": ".xml" + } + } + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "compile": { + "lib/netstandard1.0/_._": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll": { + "related": ".xml" + } + } + }, + "System.Threading.Timer/4.3.0": { + "type": "package", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + }, + "compile": { + "ref/netstandard1.2/System.Threading.Timer.dll": { + "related": ".xml" + } + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Xml.ReaderWriter.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "compile": { + "ref/netstandard1.3/System.Xml.XDocument.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XDocument.dll": {} + } + }, + "xunit/2.5.3": { + "type": "package", + "dependencies": { + "xunit.analyzers": "1.4.0", + "xunit.assert": "2.5.3", + "xunit.core": "[2.5.3]" + } + }, + "xunit.abstractions/2.0.3": { + "type": "package", + "compile": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/xunit.abstractions.dll": { + "related": ".xml" + } + } + }, + "xunit.analyzers/1.4.0": { + "type": "package" + }, + "xunit.assert/2.5.3": { + "type": "package", + "dependencies": { + "NETStandard.Library": "1.6.1" + }, + "compile": { + "lib/netstandard1.1/xunit.assert.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.assert.dll": { + "related": ".xml" + } + } + }, + "xunit.core/2.5.3": { + "type": "package", + "dependencies": { + "xunit.extensibility.core": "[2.5.3]", + "xunit.extensibility.execution": "[2.5.3]" + }, + "build": { + "build/xunit.core.props": {}, + "build/xunit.core.targets": {} + }, + "buildMultiTargeting": { + "buildMultiTargeting/xunit.core.props": {}, + "buildMultiTargeting/xunit.core.targets": {} + } + }, + "xunit.extensibility.core/2.5.3": { + "type": "package", + "dependencies": { + "NETStandard.Library": "1.6.1", + "xunit.abstractions": "2.0.3" + }, + "compile": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.core.dll": { + "related": ".xml" + } + } + }, + "xunit.extensibility.execution/2.5.3": { + "type": "package", + "dependencies": { + "NETStandard.Library": "1.6.1", + "xunit.extensibility.core": "[2.5.3]" + }, + "compile": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard1.1/xunit.execution.dotnet.dll": { + "related": ".xml" + } + } + }, + "xunit.runner.visualstudio/2.5.3": { + "type": "package", + "compile": { + "lib/net6.0/_._": {} + }, + "runtime": { + "lib/net6.0/_._": {} + }, + "build": { + "build/net6.0/xunit.runner.visualstudio.props": {} + } + }, + "IM_API/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "AutoMapper": "12.0.1", + "AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.0", + "MassTransit.RabbitMQ": "8.5.5", + "Microsoft.AspNetCore.Authentication.JwtBearer": "8.0.21", + "Microsoft.AspNetCore.SignalR": "1.2.0", + "Microsoft.Extensions.Caching.StackExchangeRedis": "10.0.2", + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets": "1.22.1", + "Newtonsoft.Json": "13.0.4", + "Pomelo.EntityFrameworkCore.MySql": "8.0.3", + "RedLock.net": "2.3.2", + "StackExchange.Redis": "2.9.32", + "Swashbuckle.AspNetCore": "6.6.2", + "System.IdentityModel.Tokens.Jwt": "8.14.0" + }, + "compile": { + "bin/placeholder/IM_API.dll": {} + }, + "runtime": { + "bin/placeholder/IM_API.dll": {} + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + } + } + }, + "libraries": { + "AutoMapper/12.0.1": { + "sha512": "hvV62vl6Hp/WfQ24yzo3Co9+OPl8wH8hApwVtgWpiAynVJkUcs7xvehnSftawL8Pe8FrPffBRM3hwzLQqWDNjA==", + "type": "package", + "path": "automapper/12.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "automapper.12.0.1.nupkg.sha512", + "automapper.nuspec", + "icon.png", + "lib/netstandard2.1/AutoMapper.dll", + "lib/netstandard2.1/AutoMapper.xml" + ] + }, + "AutoMapper.Extensions.Microsoft.DependencyInjection/12.0.0": { + "sha512": "XCJ4E3oKrbRl1qY9Mr+7uyC0xZj1+bqQjmQRWTiTKiVuuXTny+7YFWHi20tPjwkMukLbicN6yGlDy5PZ4wyi1w==", + "type": "package", + "path": "automapper.extensions.microsoft.dependencyinjection/12.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512", + "automapper.extensions.microsoft.dependencyinjection.nuspec", + "icon.png", + "lib/netstandard2.1/AutoMapper.Extensions.Microsoft.DependencyInjection.dll" + ] + }, + "Castle.Core/5.1.1": { + "sha512": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==", + "type": "package", + "path": "castle.core/5.1.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ASL - Apache Software Foundation License.txt", + "CHANGELOG.md", + "LICENSE", + "castle-logo.png", + "castle.core.5.1.1.nupkg.sha512", + "castle.core.nuspec", + "lib/net462/Castle.Core.dll", + "lib/net462/Castle.Core.xml", + "lib/net6.0/Castle.Core.dll", + "lib/net6.0/Castle.Core.xml", + "lib/netstandard2.0/Castle.Core.dll", + "lib/netstandard2.0/Castle.Core.xml", + "lib/netstandard2.1/Castle.Core.dll", + "lib/netstandard2.1/Castle.Core.xml", + "readme.txt" + ] + }, + "coverlet.collector/6.0.0": { + "sha512": "tW3lsNS+dAEII6YGUX/VMoJjBS1QvsxqJeqLaJXub08y1FSjasFPtQ4UBUsudE9PNrzLjooClMsPtY2cZLdXpQ==", + "type": "package", + "path": "coverlet.collector/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/netstandard1.0/Microsoft.Bcl.AsyncInterfaces.dll", + "build/netstandard1.0/Microsoft.CSharp.dll", + "build/netstandard1.0/Microsoft.DotNet.PlatformAbstractions.dll", + "build/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "build/netstandard1.0/Microsoft.Extensions.DependencyInjection.dll", + "build/netstandard1.0/Microsoft.Extensions.DependencyModel.dll", + "build/netstandard1.0/Microsoft.Extensions.FileSystemGlobbing.dll", + "build/netstandard1.0/Microsoft.TestPlatform.CoreUtilities.dll", + "build/netstandard1.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "build/netstandard1.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "build/netstandard1.0/Mono.Cecil.Mdb.dll", + "build/netstandard1.0/Mono.Cecil.Pdb.dll", + "build/netstandard1.0/Mono.Cecil.Rocks.dll", + "build/netstandard1.0/Mono.Cecil.dll", + "build/netstandard1.0/Newtonsoft.Json.dll", + "build/netstandard1.0/NuGet.Frameworks.dll", + "build/netstandard1.0/System.AppContext.dll", + "build/netstandard1.0/System.Collections.Immutable.dll", + "build/netstandard1.0/System.Dynamic.Runtime.dll", + "build/netstandard1.0/System.IO.FileSystem.Primitives.dll", + "build/netstandard1.0/System.Linq.Expressions.dll", + "build/netstandard1.0/System.Linq.dll", + "build/netstandard1.0/System.ObjectModel.dll", + "build/netstandard1.0/System.Reflection.Emit.ILGeneration.dll", + "build/netstandard1.0/System.Reflection.Emit.Lightweight.dll", + "build/netstandard1.0/System.Reflection.Emit.dll", + "build/netstandard1.0/System.Reflection.Metadata.dll", + "build/netstandard1.0/System.Reflection.TypeExtensions.dll", + "build/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll", + "build/netstandard1.0/System.Runtime.Serialization.Primitives.dll", + "build/netstandard1.0/System.Text.RegularExpressions.dll", + "build/netstandard1.0/System.Threading.Tasks.Extensions.dll", + "build/netstandard1.0/System.Threading.dll", + "build/netstandard1.0/System.Xml.ReaderWriter.dll", + "build/netstandard1.0/System.Xml.XDocument.dll", + "build/netstandard1.0/coverlet.collector.deps.json", + "build/netstandard1.0/coverlet.collector.dll", + "build/netstandard1.0/coverlet.collector.pdb", + "build/netstandard1.0/coverlet.collector.targets", + "build/netstandard1.0/coverlet.core.dll", + "build/netstandard1.0/coverlet.core.pdb", + "coverlet-icon.png", + "coverlet.collector.6.0.0.nupkg.sha512", + "coverlet.collector.nuspec" + ] + }, + "MassTransit/8.5.5": { + "sha512": "bSg8k5q+rP1s+dIGXLLbctqDGdIkfDjdxwNWtCUH7xNCN9ZuM7mqSPQPIFgaYIi34e81m4FqAqo4CAHuWPkhRA==", + "type": "package", + "path": "masstransit/8.5.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NuGet.README.md", + "lib/net472/MassTransit.dll", + "lib/net472/MassTransit.xml", + "lib/net8.0/MassTransit.dll", + "lib/net8.0/MassTransit.xml", + "lib/net9.0/MassTransit.dll", + "lib/net9.0/MassTransit.xml", + "lib/netstandard2.0/MassTransit.dll", + "lib/netstandard2.0/MassTransit.xml", + "masstransit.8.5.5.nupkg.sha512", + "masstransit.nuspec", + "mt-logo-small.png" + ] + }, + "MassTransit.Abstractions/8.5.5": { + "sha512": "0mn2Ay17dD6z5tgSLjbVRlldSbL9iowzFEfVgVfBXVG5ttz9dSWeR4TrdD6pqH93GWXp4CvSmF8i1HqxLX7DZw==", + "type": "package", + "path": "masstransit.abstractions/8.5.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NuGet.README.md", + "lib/net472/MassTransit.Abstractions.dll", + "lib/net472/MassTransit.Abstractions.xml", + "lib/net8.0/MassTransit.Abstractions.dll", + "lib/net8.0/MassTransit.Abstractions.xml", + "lib/net9.0/MassTransit.Abstractions.dll", + "lib/net9.0/MassTransit.Abstractions.xml", + "lib/netstandard2.0/MassTransit.Abstractions.dll", + "lib/netstandard2.0/MassTransit.Abstractions.xml", + "masstransit.abstractions.8.5.5.nupkg.sha512", + "masstransit.abstractions.nuspec", + "mt-logo-small.png" + ] + }, + "MassTransit.RabbitMQ/8.5.5": { + "sha512": "UxWn4o90YVMF9PBkJeoskOFPneh6YtnI1fLJHtvZiSAG0eoiRrWPGa+6FQCvjkQ/ljCKfjzok2eGZc/vmNZ01A==", + "type": "package", + "path": "masstransit.rabbitmq/8.5.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "NuGet.README.md", + "lib/net472/MassTransit.RabbitMqTransport.dll", + "lib/net472/MassTransit.RabbitMqTransport.xml", + "lib/net8.0/MassTransit.RabbitMqTransport.dll", + "lib/net8.0/MassTransit.RabbitMqTransport.xml", + "lib/net9.0/MassTransit.RabbitMqTransport.dll", + "lib/net9.0/MassTransit.RabbitMqTransport.xml", + "lib/netstandard2.0/MassTransit.RabbitMqTransport.dll", + "lib/netstandard2.0/MassTransit.RabbitMqTransport.xml", + "masstransit.rabbitmq.8.5.5.nupkg.sha512", + "masstransit.rabbitmq.nuspec", + "mt-logo-small.png" + ] + }, + "Microsoft.AspNetCore.Authentication.Abstractions/2.3.0": { + "sha512": "ve6uvLwKNRkfnO/QeN9M8eUJ49lCnWv/6/9p6iTEuiI6Rtsz+myaBAjdMzLuTViQY032xbTF5AdZF5BJzJJyXQ==", + "type": "package", + "path": "microsoft.aspnetcore.authentication.abstractions/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Authentication.Abstractions.xml", + "microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.authentication.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.Authentication.JwtBearer/8.0.21": { + "sha512": "ZuUpJ4DvmVArmTlyGGg+b9IdKgd8Kw0SmEzhjy4dQw8R6rxfNqCXfGvGm3ld7xlrgthJFou/le9tadsSyjFLuw==", + "type": "package", + "path": "microsoft.aspnetcore.authentication.jwtbearer/8.0.21", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll", + "lib/net8.0/Microsoft.AspNetCore.Authentication.JwtBearer.xml", + "microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512", + "microsoft.aspnetcore.authentication.jwtbearer.nuspec" + ] + }, + "Microsoft.AspNetCore.Authorization/2.3.0": { + "sha512": "2/aBgLqBXva/+w8pzRNY8ET43Gi+dr1gv/7ySfbsh23lTK6IAgID5MGUEa1hreNIF+0XpW4tX7QwVe70+YvaPg==", + "type": "package", + "path": "microsoft.aspnetcore.authorization/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.xml", + "microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.authorization.nuspec" + ] + }, + "Microsoft.AspNetCore.Authorization.Policy/2.3.0": { + "sha512": "vn31uQ1dA1MIV2WNNDOOOm88V5KgR9esfi0LyQ6eVaGq2h0Yw+R29f5A6qUNJt+RccS3qkYayylAy9tP1wV+7Q==", + "type": "package", + "path": "microsoft.aspnetcore.authorization.policy/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Authorization.Policy.xml", + "microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.authorization.policy.nuspec" + ] + }, + "Microsoft.AspNetCore.Connections.Abstractions/2.3.0": { + "sha512": "ULFSa+/L+WiAHVlIFHyg0OmHChU9Hx+K+xnt0hbIU5XmT1EGy0pNDx23QAzDtAy9jxQrTG6MX0MdvMeU4D4c7w==", + "type": "package", + "path": "microsoft.aspnetcore.connections.abstractions/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.connections.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": { + "sha512": "4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==", + "type": "package", + "path": "microsoft.aspnetcore.hosting.abstractions/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Abstractions.xml", + "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.hosting.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": { + "sha512": "F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==", + "type": "package", + "path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.xml", + "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.hosting.server.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.Http/2.3.0": { + "sha512": "I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==", + "type": "package", + "path": "microsoft.aspnetcore.http/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.xml", + "microsoft.aspnetcore.http.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.http.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Abstractions/2.3.0": { + "sha512": "39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==", + "type": "package", + "path": "microsoft.aspnetcore.http.abstractions/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Abstractions.xml", + "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.http.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Connections/1.2.0": { + "sha512": "VYMCOLvdT0y3O9lk4jUuIs8+re7u5+i+ka6ZZ6fIzSJ94c/JeMnAOOg39EB2i4crPXvLoiSdzKWlNPJgTbCZ2g==", + "type": "package", + "path": "microsoft.aspnetcore.http.connections/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.xml", + "microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512", + "microsoft.aspnetcore.http.connections.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Connections.Common/1.2.0": { + "sha512": "yUA7eg6kv7Wbz5TCW4PqS5/kYE5VxUIEDvoxjw4p1RwS2LGm84F9fBtM0mD6wrRfiv1NUyJ7WBjn3PWd/ccO+w==", + "type": "package", + "path": "microsoft.aspnetcore.http.connections.common/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.xml", + "microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512", + "microsoft.aspnetcore.http.connections.common.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Extensions/2.3.0": { + "sha512": "EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==", + "type": "package", + "path": "microsoft.aspnetcore.http.extensions/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Extensions.xml", + "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.http.extensions.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Features/2.3.0": { + "sha512": "f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==", + "type": "package", + "path": "microsoft.aspnetcore.http.features/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Features.xml", + "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.http.features.nuspec" + ] + }, + "Microsoft.AspNetCore.Routing/2.3.0": { + "sha512": "no5/VC0CAQuT4PK4rp2K5fqwuSfzr2mdB6m1XNfWVhHnwzpRQzKAu9flChiT/JTLKwVI0Vq2MSmSW2OFMDCNXg==", + "type": "package", + "path": "microsoft.aspnetcore.routing/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.xml", + "microsoft.aspnetcore.routing.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.routing.nuspec" + ] + }, + "Microsoft.AspNetCore.Routing.Abstractions/2.3.0": { + "sha512": "ZkFpUrSmp6TocxZLBEX3IBv5dPMbQuMs6L/BPl0WRfn32UVOtNYJQ0bLdh3cL9LMV0rmTW/5R0w8CBYxr0AOUw==", + "type": "package", + "path": "microsoft.aspnetcore.routing.abstractions/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Routing.Abstractions.xml", + "microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.routing.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR/1.2.0": { + "sha512": "XoCcsOTdtBiXyOzUtpbCl0IaqMOYjnr+6dbDxvUCFn7NR6bu7CwrlQ3oQzkltTwDZH0b6VEUN9wZPOYvPHi+Lg==", + "type": "package", + "path": "microsoft.aspnetcore.signalr/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.xml", + "microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Common/1.2.0": { + "sha512": "FZeXIaoWqe145ZPdfiptwkw/sP1BX1UD0706GNBwwoaFiKsNbLEl/Trhj2+idlp3qbX1BEwkQesKNxkopVY5Xg==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.common/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.xml", + "microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.common.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Core/1.2.0": { + "sha512": "eZTuMkSDw1uwjhLhJbMxgW2Cuyxfn0Kfqm8OBmqvuzE9Qc/VVzh8dGrAp2F9Pk7XKTDHmlhc5RTLcPPAZ5PSZw==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.core/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Core.xml", + "microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.core.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/1.2.0": { + "sha512": "hNvZ7kQxp5Udqd/IFWViU35bUJvi4xnNzjkF28HRvrdrS7JNsIASTvMqArP6HLQUc3j6nlUOeShNhVmgI1wzHg==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.protocols.json/1.2.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", + "microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.protocols.json.nuspec" + ] + }, + "Microsoft.AspNetCore.WebSockets/2.3.0": { + "sha512": "+T4zpnVPkIjvvkyhTH3WBJlTfqmTBRozvnMudAUDvcb4e+NrWf52q8BXh52rkCrBgX6Cudf6F/UhZwTowyBtKg==", + "type": "package", + "path": "microsoft.aspnetcore.websockets/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.WebSockets.xml", + "microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.websockets.nuspec" + ] + }, + "Microsoft.AspNetCore.WebUtilities/2.3.0": { + "sha512": "trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==", + "type": "package", + "path": "microsoft.aspnetcore.webutilities/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.WebUtilities.xml", + "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512", + "microsoft.aspnetcore.webutilities.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.0": { + "sha512": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net461/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "ref/net461/Microsoft.Bcl.AsyncInterfaces.dll", + "ref/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "ref/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.CodeCoverage/17.8.0": { + "sha512": "KC8SXWbGIdoFVdlxKk9WHccm0llm9HypcHMLUUFabRiTS3SO2fQXNZfdiF3qkEdTJhbRrxhdRxjL4jbtwPq4Ew==", + "type": "package", + "path": "microsoft.codecoverage/17.8.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE_MIT.txt", + "ThirdPartyNotices.txt", + "build/netstandard2.0/CodeCoverage/CodeCoverage.config", + "build/netstandard2.0/CodeCoverage/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/VanguardInstrumentationProfiler_x86.config", + "build/netstandard2.0/CodeCoverage/amd64/CodeCoverage.exe", + "build/netstandard2.0/CodeCoverage/amd64/VanguardInstrumentationProfiler_x64.config", + "build/netstandard2.0/CodeCoverage/amd64/covrun64.dll", + "build/netstandard2.0/CodeCoverage/amd64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/arm64/VanguardInstrumentationProfiler_arm64.config", + "build/netstandard2.0/CodeCoverage/arm64/covrunarm64.dll", + "build/netstandard2.0/CodeCoverage/arm64/msdia140.dll", + "build/netstandard2.0/CodeCoverage/codecoveragemessages.dll", + "build/netstandard2.0/CodeCoverage/coreclr/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "build/netstandard2.0/CodeCoverage/covrun32.dll", + "build/netstandard2.0/CodeCoverage/msdia140.dll", + "build/netstandard2.0/InstrumentationEngine/alpine/x64/VanguardInstrumentationProfiler_x64.config", + "build/netstandard2.0/InstrumentationEngine/alpine/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/InstrumentationEngine/alpine/x64/libInstrumentationEngine.so", + "build/netstandard2.0/InstrumentationEngine/arm64/MicrosoftInstrumentationEngine_arm64.dll", + "build/netstandard2.0/InstrumentationEngine/macos/x64/VanguardInstrumentationProfiler_x64.config", + "build/netstandard2.0/InstrumentationEngine/macos/x64/libCoverageInstrumentationMethod.dylib", + "build/netstandard2.0/InstrumentationEngine/macos/x64/libInstrumentationEngine.dylib", + "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/VanguardInstrumentationProfiler_x64.config", + "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/libCoverageInstrumentationMethod.so", + "build/netstandard2.0/InstrumentationEngine/ubuntu/x64/libInstrumentationEngine.so", + "build/netstandard2.0/InstrumentationEngine/x64/MicrosoftInstrumentationEngine_x64.dll", + "build/netstandard2.0/InstrumentationEngine/x86/MicrosoftInstrumentationEngine_x86.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Core.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Instrumentation.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.Interprocess.dll", + "build/netstandard2.0/Microsoft.CodeCoverage.props", + "build/netstandard2.0/Microsoft.CodeCoverage.targets", + "build/netstandard2.0/Microsoft.DiaSymReader.dll", + "build/netstandard2.0/Microsoft.VisualStudio.TraceDataCollector.dll", + "build/netstandard2.0/Mono.Cecil.Pdb.dll", + "build/netstandard2.0/Mono.Cecil.Rocks.dll", + "build/netstandard2.0/Mono.Cecil.dll", + "build/netstandard2.0/ThirdPartyNotices.txt", + "build/netstandard2.0/cs/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/de/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/es/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/fr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/it/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ja/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ko/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/pl/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/pt-BR/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/ru/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/tr/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "build/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TraceDataCollector.resources.dll", + "lib/net462/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll", + "microsoft.codecoverage.17.8.0.nupkg.sha512", + "microsoft.codecoverage.nuspec" + ] + }, + "Microsoft.CSharp/4.7.0": { + "sha512": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==", + "type": "package", + "path": "microsoft.csharp/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/Microsoft.CSharp.dll", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.3/Microsoft.CSharp.dll", + "lib/netstandard2.0/Microsoft.CSharp.dll", + "lib/netstandard2.0/Microsoft.CSharp.xml", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/uap10.0.16299/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "microsoft.csharp.4.7.0.nupkg.sha512", + "microsoft.csharp.nuspec", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/Microsoft.CSharp.dll", + "ref/netcore50/Microsoft.CSharp.xml", + "ref/netcore50/de/Microsoft.CSharp.xml", + "ref/netcore50/es/Microsoft.CSharp.xml", + "ref/netcore50/fr/Microsoft.CSharp.xml", + "ref/netcore50/it/Microsoft.CSharp.xml", + "ref/netcore50/ja/Microsoft.CSharp.xml", + "ref/netcore50/ko/Microsoft.CSharp.xml", + "ref/netcore50/ru/Microsoft.CSharp.xml", + "ref/netcore50/zh-hans/Microsoft.CSharp.xml", + "ref/netcore50/zh-hant/Microsoft.CSharp.xml", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.0/Microsoft.CSharp.dll", + "ref/netstandard1.0/Microsoft.CSharp.xml", + "ref/netstandard1.0/de/Microsoft.CSharp.xml", + "ref/netstandard1.0/es/Microsoft.CSharp.xml", + "ref/netstandard1.0/fr/Microsoft.CSharp.xml", + "ref/netstandard1.0/it/Microsoft.CSharp.xml", + "ref/netstandard1.0/ja/Microsoft.CSharp.xml", + "ref/netstandard1.0/ko/Microsoft.CSharp.xml", + "ref/netstandard1.0/ru/Microsoft.CSharp.xml", + "ref/netstandard1.0/zh-hans/Microsoft.CSharp.xml", + "ref/netstandard1.0/zh-hant/Microsoft.CSharp.xml", + "ref/netstandard2.0/Microsoft.CSharp.dll", + "ref/netstandard2.0/Microsoft.CSharp.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/uap10.0.16299/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.EntityFrameworkCore/8.0.22": { + "sha512": "nKGrD/WOO1d7qtXvghFAHre5Fk3ubw41pDFM0hbFxVIkMFxl4B0ug2LylMHOq+dgAceUeo3bx0qMh6/Jl9NbrA==", + "type": "package", + "path": "microsoft.entityframeworkcore/8.0.22", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net8.0/Microsoft.EntityFrameworkCore.props", + "lib/net8.0/Microsoft.EntityFrameworkCore.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.xml", + "microsoft.entityframeworkcore.8.0.22.nupkg.sha512", + "microsoft.entityframeworkcore.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Abstractions/8.0.22": { + "sha512": "p4Fw9mpJnZHmkdOGCbBqbvuyj1LnnFxNon8snMKIQ0MGSB+j9f6ffWDfvGRaOS/9ikqQG9RMOTzZk52q1G23ng==", + "type": "package", + "path": "microsoft.entityframeworkcore.abstractions/8.0.22", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Abstractions.xml", + "microsoft.entityframeworkcore.abstractions.8.0.22.nupkg.sha512", + "microsoft.entityframeworkcore.abstractions.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Analyzers/8.0.22": { + "sha512": "lrSWwr+X+Fn5XGOwOYFQJWx+u+eameqhMjQ1mohXUE2N7LauucZAtcH/j+yXwQntosKoXU1TOoggTL/zmYqbHQ==", + "type": "package", + "path": "microsoft.entityframeworkcore.analyzers/8.0.22", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "analyzers/dotnet/cs/Microsoft.EntityFrameworkCore.Analyzers.dll", + "docs/PACKAGE.md", + "lib/netstandard2.0/_._", + "microsoft.entityframeworkcore.analyzers.8.0.22.nupkg.sha512", + "microsoft.entityframeworkcore.analyzers.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.InMemory/8.0.22": { + "sha512": "dPbM/KLIh/AdHRjh/OhrzhAiHRLT0JBC5KSvAZ71eg42+QwF9aEuBfTzqr+GJE6DK9CLhqh9jXAqRKFojPki5g==", + "type": "package", + "path": "microsoft.entityframeworkcore.inmemory/8.0.22", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.InMemory.xml", + "microsoft.entityframeworkcore.inmemory.8.0.22.nupkg.sha512", + "microsoft.entityframeworkcore.inmemory.nuspec" + ] + }, + "Microsoft.EntityFrameworkCore.Relational/8.0.13": { + "sha512": "uQR2iTar+6ZEjEHTwgH0/7ySSRme4R9sDiupfG3w/eBub3365fPw/MjhsuOMQkdq9YzLM7veH4Qt/K9OqL26Qg==", + "type": "package", + "path": "microsoft.entityframeworkcore.relational/8.0.13", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll", + "lib/net8.0/Microsoft.EntityFrameworkCore.Relational.xml", + "microsoft.entityframeworkcore.relational.8.0.13.nupkg.sha512", + "microsoft.entityframeworkcore.relational.nuspec" + ] + }, + "Microsoft.Extensions.ApiDescription.Server/6.0.5": { + "sha512": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==", + "type": "package", + "path": "microsoft.extensions.apidescription.server/6.0.5", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "build/Microsoft.Extensions.ApiDescription.Server.props", + "build/Microsoft.Extensions.ApiDescription.Server.targets", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.props", + "buildMultiTargeting/Microsoft.Extensions.ApiDescription.Server.targets", + "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", + "microsoft.extensions.apidescription.server.nuspec", + "tools/Newtonsoft.Json.dll", + "tools/dotnet-getdocument.deps.json", + "tools/dotnet-getdocument.dll", + "tools/dotnet-getdocument.runtimeconfig.json", + "tools/net461-x86/GetDocument.Insider.exe", + "tools/net461-x86/GetDocument.Insider.exe.config", + "tools/net461-x86/Microsoft.Win32.Primitives.dll", + "tools/net461-x86/System.AppContext.dll", + "tools/net461-x86/System.Buffers.dll", + "tools/net461-x86/System.Collections.Concurrent.dll", + "tools/net461-x86/System.Collections.NonGeneric.dll", + "tools/net461-x86/System.Collections.Specialized.dll", + "tools/net461-x86/System.Collections.dll", + "tools/net461-x86/System.ComponentModel.EventBasedAsync.dll", + "tools/net461-x86/System.ComponentModel.Primitives.dll", + "tools/net461-x86/System.ComponentModel.TypeConverter.dll", + "tools/net461-x86/System.ComponentModel.dll", + "tools/net461-x86/System.Console.dll", + "tools/net461-x86/System.Data.Common.dll", + "tools/net461-x86/System.Diagnostics.Contracts.dll", + "tools/net461-x86/System.Diagnostics.Debug.dll", + "tools/net461-x86/System.Diagnostics.DiagnosticSource.dll", + "tools/net461-x86/System.Diagnostics.FileVersionInfo.dll", + "tools/net461-x86/System.Diagnostics.Process.dll", + "tools/net461-x86/System.Diagnostics.StackTrace.dll", + "tools/net461-x86/System.Diagnostics.TextWriterTraceListener.dll", + "tools/net461-x86/System.Diagnostics.Tools.dll", + "tools/net461-x86/System.Diagnostics.TraceSource.dll", + "tools/net461-x86/System.Diagnostics.Tracing.dll", + "tools/net461-x86/System.Drawing.Primitives.dll", + "tools/net461-x86/System.Dynamic.Runtime.dll", + "tools/net461-x86/System.Globalization.Calendars.dll", + "tools/net461-x86/System.Globalization.Extensions.dll", + "tools/net461-x86/System.Globalization.dll", + "tools/net461-x86/System.IO.Compression.ZipFile.dll", + "tools/net461-x86/System.IO.Compression.dll", + "tools/net461-x86/System.IO.FileSystem.DriveInfo.dll", + "tools/net461-x86/System.IO.FileSystem.Primitives.dll", + "tools/net461-x86/System.IO.FileSystem.Watcher.dll", + "tools/net461-x86/System.IO.FileSystem.dll", + "tools/net461-x86/System.IO.IsolatedStorage.dll", + "tools/net461-x86/System.IO.MemoryMappedFiles.dll", + "tools/net461-x86/System.IO.Pipes.dll", + "tools/net461-x86/System.IO.UnmanagedMemoryStream.dll", + "tools/net461-x86/System.IO.dll", + "tools/net461-x86/System.Linq.Expressions.dll", + "tools/net461-x86/System.Linq.Parallel.dll", + "tools/net461-x86/System.Linq.Queryable.dll", + "tools/net461-x86/System.Linq.dll", + "tools/net461-x86/System.Memory.dll", + "tools/net461-x86/System.Net.Http.dll", + "tools/net461-x86/System.Net.NameResolution.dll", + "tools/net461-x86/System.Net.NetworkInformation.dll", + "tools/net461-x86/System.Net.Ping.dll", + "tools/net461-x86/System.Net.Primitives.dll", + "tools/net461-x86/System.Net.Requests.dll", + "tools/net461-x86/System.Net.Security.dll", + "tools/net461-x86/System.Net.Sockets.dll", + "tools/net461-x86/System.Net.WebHeaderCollection.dll", + "tools/net461-x86/System.Net.WebSockets.Client.dll", + "tools/net461-x86/System.Net.WebSockets.dll", + "tools/net461-x86/System.Numerics.Vectors.dll", + "tools/net461-x86/System.ObjectModel.dll", + "tools/net461-x86/System.Reflection.Extensions.dll", + "tools/net461-x86/System.Reflection.Primitives.dll", + "tools/net461-x86/System.Reflection.dll", + "tools/net461-x86/System.Resources.Reader.dll", + "tools/net461-x86/System.Resources.ResourceManager.dll", + "tools/net461-x86/System.Resources.Writer.dll", + "tools/net461-x86/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net461-x86/System.Runtime.CompilerServices.VisualC.dll", + "tools/net461-x86/System.Runtime.Extensions.dll", + "tools/net461-x86/System.Runtime.Handles.dll", + "tools/net461-x86/System.Runtime.InteropServices.RuntimeInformation.dll", + "tools/net461-x86/System.Runtime.InteropServices.dll", + "tools/net461-x86/System.Runtime.Numerics.dll", + "tools/net461-x86/System.Runtime.Serialization.Formatters.dll", + "tools/net461-x86/System.Runtime.Serialization.Json.dll", + "tools/net461-x86/System.Runtime.Serialization.Primitives.dll", + "tools/net461-x86/System.Runtime.Serialization.Xml.dll", + "tools/net461-x86/System.Runtime.dll", + "tools/net461-x86/System.Security.Claims.dll", + "tools/net461-x86/System.Security.Cryptography.Algorithms.dll", + "tools/net461-x86/System.Security.Cryptography.Csp.dll", + "tools/net461-x86/System.Security.Cryptography.Encoding.dll", + "tools/net461-x86/System.Security.Cryptography.Primitives.dll", + "tools/net461-x86/System.Security.Cryptography.X509Certificates.dll", + "tools/net461-x86/System.Security.Principal.dll", + "tools/net461-x86/System.Security.SecureString.dll", + "tools/net461-x86/System.Text.Encoding.Extensions.dll", + "tools/net461-x86/System.Text.Encoding.dll", + "tools/net461-x86/System.Text.RegularExpressions.dll", + "tools/net461-x86/System.Threading.Overlapped.dll", + "tools/net461-x86/System.Threading.Tasks.Parallel.dll", + "tools/net461-x86/System.Threading.Tasks.dll", + "tools/net461-x86/System.Threading.Thread.dll", + "tools/net461-x86/System.Threading.ThreadPool.dll", + "tools/net461-x86/System.Threading.Timer.dll", + "tools/net461-x86/System.Threading.dll", + "tools/net461-x86/System.ValueTuple.dll", + "tools/net461-x86/System.Xml.ReaderWriter.dll", + "tools/net461-x86/System.Xml.XDocument.dll", + "tools/net461-x86/System.Xml.XPath.XDocument.dll", + "tools/net461-x86/System.Xml.XPath.dll", + "tools/net461-x86/System.Xml.XmlDocument.dll", + "tools/net461-x86/System.Xml.XmlSerializer.dll", + "tools/net461-x86/netstandard.dll", + "tools/net461/GetDocument.Insider.exe", + "tools/net461/GetDocument.Insider.exe.config", + "tools/net461/Microsoft.Win32.Primitives.dll", + "tools/net461/System.AppContext.dll", + "tools/net461/System.Buffers.dll", + "tools/net461/System.Collections.Concurrent.dll", + "tools/net461/System.Collections.NonGeneric.dll", + "tools/net461/System.Collections.Specialized.dll", + "tools/net461/System.Collections.dll", + "tools/net461/System.ComponentModel.EventBasedAsync.dll", + "tools/net461/System.ComponentModel.Primitives.dll", + "tools/net461/System.ComponentModel.TypeConverter.dll", + "tools/net461/System.ComponentModel.dll", + "tools/net461/System.Console.dll", + "tools/net461/System.Data.Common.dll", + "tools/net461/System.Diagnostics.Contracts.dll", + "tools/net461/System.Diagnostics.Debug.dll", + "tools/net461/System.Diagnostics.DiagnosticSource.dll", + "tools/net461/System.Diagnostics.FileVersionInfo.dll", + "tools/net461/System.Diagnostics.Process.dll", + "tools/net461/System.Diagnostics.StackTrace.dll", + "tools/net461/System.Diagnostics.TextWriterTraceListener.dll", + "tools/net461/System.Diagnostics.Tools.dll", + "tools/net461/System.Diagnostics.TraceSource.dll", + "tools/net461/System.Diagnostics.Tracing.dll", + "tools/net461/System.Drawing.Primitives.dll", + "tools/net461/System.Dynamic.Runtime.dll", + "tools/net461/System.Globalization.Calendars.dll", + "tools/net461/System.Globalization.Extensions.dll", + "tools/net461/System.Globalization.dll", + "tools/net461/System.IO.Compression.ZipFile.dll", + "tools/net461/System.IO.Compression.dll", + "tools/net461/System.IO.FileSystem.DriveInfo.dll", + "tools/net461/System.IO.FileSystem.Primitives.dll", + "tools/net461/System.IO.FileSystem.Watcher.dll", + "tools/net461/System.IO.FileSystem.dll", + "tools/net461/System.IO.IsolatedStorage.dll", + "tools/net461/System.IO.MemoryMappedFiles.dll", + "tools/net461/System.IO.Pipes.dll", + "tools/net461/System.IO.UnmanagedMemoryStream.dll", + "tools/net461/System.IO.dll", + "tools/net461/System.Linq.Expressions.dll", + "tools/net461/System.Linq.Parallel.dll", + "tools/net461/System.Linq.Queryable.dll", + "tools/net461/System.Linq.dll", + "tools/net461/System.Memory.dll", + "tools/net461/System.Net.Http.dll", + "tools/net461/System.Net.NameResolution.dll", + "tools/net461/System.Net.NetworkInformation.dll", + "tools/net461/System.Net.Ping.dll", + "tools/net461/System.Net.Primitives.dll", + "tools/net461/System.Net.Requests.dll", + "tools/net461/System.Net.Security.dll", + "tools/net461/System.Net.Sockets.dll", + "tools/net461/System.Net.WebHeaderCollection.dll", + "tools/net461/System.Net.WebSockets.Client.dll", + "tools/net461/System.Net.WebSockets.dll", + "tools/net461/System.Numerics.Vectors.dll", + "tools/net461/System.ObjectModel.dll", + "tools/net461/System.Reflection.Extensions.dll", + "tools/net461/System.Reflection.Primitives.dll", + "tools/net461/System.Reflection.dll", + "tools/net461/System.Resources.Reader.dll", + "tools/net461/System.Resources.ResourceManager.dll", + "tools/net461/System.Resources.Writer.dll", + "tools/net461/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net461/System.Runtime.CompilerServices.VisualC.dll", + "tools/net461/System.Runtime.Extensions.dll", + "tools/net461/System.Runtime.Handles.dll", + "tools/net461/System.Runtime.InteropServices.RuntimeInformation.dll", + "tools/net461/System.Runtime.InteropServices.dll", + "tools/net461/System.Runtime.Numerics.dll", + "tools/net461/System.Runtime.Serialization.Formatters.dll", + "tools/net461/System.Runtime.Serialization.Json.dll", + "tools/net461/System.Runtime.Serialization.Primitives.dll", + "tools/net461/System.Runtime.Serialization.Xml.dll", + "tools/net461/System.Runtime.dll", + "tools/net461/System.Security.Claims.dll", + "tools/net461/System.Security.Cryptography.Algorithms.dll", + "tools/net461/System.Security.Cryptography.Csp.dll", + "tools/net461/System.Security.Cryptography.Encoding.dll", + "tools/net461/System.Security.Cryptography.Primitives.dll", + "tools/net461/System.Security.Cryptography.X509Certificates.dll", + "tools/net461/System.Security.Principal.dll", + "tools/net461/System.Security.SecureString.dll", + "tools/net461/System.Text.Encoding.Extensions.dll", + "tools/net461/System.Text.Encoding.dll", + "tools/net461/System.Text.RegularExpressions.dll", + "tools/net461/System.Threading.Overlapped.dll", + "tools/net461/System.Threading.Tasks.Parallel.dll", + "tools/net461/System.Threading.Tasks.dll", + "tools/net461/System.Threading.Thread.dll", + "tools/net461/System.Threading.ThreadPool.dll", + "tools/net461/System.Threading.Timer.dll", + "tools/net461/System.Threading.dll", + "tools/net461/System.ValueTuple.dll", + "tools/net461/System.Xml.ReaderWriter.dll", + "tools/net461/System.Xml.XDocument.dll", + "tools/net461/System.Xml.XPath.XDocument.dll", + "tools/net461/System.Xml.XPath.dll", + "tools/net461/System.Xml.XmlDocument.dll", + "tools/net461/System.Xml.XmlSerializer.dll", + "tools/net461/netstandard.dll", + "tools/netcoreapp2.1/GetDocument.Insider.deps.json", + "tools/netcoreapp2.1/GetDocument.Insider.dll", + "tools/netcoreapp2.1/GetDocument.Insider.runtimeconfig.json", + "tools/netcoreapp2.1/System.Diagnostics.DiagnosticSource.dll" + ] + }, + "Microsoft.Extensions.Caching.Abstractions/10.0.2": { + "sha512": "WIRPDa/qoKHmJhTAPCO/zLu9kRLQ2Fd6HD5tzgdXJ3xGEVXDHP6FvakKJjynwKrVDld8H4G4tcbW53wuC/wxMQ==", + "type": "package", + "path": "microsoft.extensions.caching.abstractions/10.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml", + "microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512", + "microsoft.extensions.caching.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.Memory/8.0.1": { + "sha512": "HFDnhYLccngrzyGgHkjEDU5FMLn4MpOsr5ElgsBMC4yx6lJh4jeWO7fHS8+TXPq+dgxCmUa/Trl8svObmwW4QA==", + "type": "package", + "path": "microsoft.extensions.caching.memory/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets", + "lib/net462/Microsoft.Extensions.Caching.Memory.dll", + "lib/net462/Microsoft.Extensions.Caching.Memory.xml", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net6.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net7.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml", + "microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "microsoft.extensions.caching.memory.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Caching.StackExchangeRedis/10.0.2": { + "sha512": "WEx0VM6KVv4Bf6lwe4WQTd4EixIfw38ZU3u/7zMe+uC5fOyiANu8Os/qyiqv2iEsIJb296tbd2E2BTaWIha3Vg==", + "type": "package", + "path": "microsoft.extensions.caching.stackexchangeredis/10.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll", + "lib/net10.0/Microsoft.Extensions.Caching.StackExchangeRedis.xml", + "lib/net462/Microsoft.Extensions.Caching.StackExchangeRedis.dll", + "lib/net462/Microsoft.Extensions.Caching.StackExchangeRedis.xml", + "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.dll", + "lib/netstandard2.0/Microsoft.Extensions.Caching.StackExchangeRedis.xml", + "microsoft.extensions.caching.stackexchangeredis.10.0.2.nupkg.sha512", + "microsoft.extensions.caching.stackexchangeredis.nuspec" + ] + }, + "Microsoft.Extensions.Configuration.Abstractions/8.0.0": { + "sha512": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Configuration.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Configuration.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/8.0.1": { + "sha512": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.2": { + "sha512": "zOIurr59+kUf9vNcsUkCvKWZv+fPosUZXURZesYkJCvl0EzTc9F7maAO4Cd2WEV7ZJJ0AZrFQvuH6Npph9wdBw==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": { + "sha512": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "type": "package", + "path": "microsoft.extensions.diagnostics.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Diagnostics.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.Abstractions.xml", + "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.diagnostics.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Diagnostics.HealthChecks/8.0.0": { + "sha512": "P9SoBuVZhJPpALZmSq72aQEb9ryP67EdquaCZGXGrrcASTNHYdrUhnpgSwIipgM5oVC+dKpRXg5zxobmF9xr5g==", + "type": "package", + "path": "microsoft.extensions.diagnostics.healthchecks/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.xml", + "microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512", + "microsoft.extensions.diagnostics.healthchecks.nuspec" + ] + }, + "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions/8.0.0": { + "sha512": "AT2qqos3IgI09ok36Qag9T8bb6kHJ3uT9Q5ki6CySybFsK6/9JbvQAgAHf1pVEjST0/N4JaFaCbm40R5edffwg==", + "type": "package", + "path": "microsoft.extensions.diagnostics.healthchecks.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.xml", + "microsoft.extensions.diagnostics.healthchecks.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.diagnostics.healthchecks.abstractions.nuspec" + ] + }, + "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": { + "sha512": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "type": "package", + "path": "microsoft.extensions.fileproviders.abstractions/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.FileProviders.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.FileProviders.Abstractions.targets", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net462/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.xml", + "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "microsoft.extensions.fileproviders.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Hosting.Abstractions/8.0.1": { + "sha512": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", + "type": "package", + "path": "microsoft.extensions.hosting.abstractions/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Hosting.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Hosting.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Hosting.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.xml", + "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "microsoft.extensions.hosting.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging/8.0.1": { + "sha512": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "type": "package", + "path": "microsoft.extensions.logging/8.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net6.0/Microsoft.Extensions.Logging.dll", + "lib/net6.0/Microsoft.Extensions.Logging.xml", + "lib/net7.0/Microsoft.Extensions.Logging.dll", + "lib/net7.0/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.8.0.1.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.2": { + "sha512": "RZkez/JjpnO+MZ6efKkSynN6ZztLpw3WbxNzjLCPBd97wWj1S9ZYPWi0nmT4kWBRa6atHsdM1ydGkUr8GudyDQ==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/10.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.ObjectPool/8.0.11": { + "sha512": "6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==", + "type": "package", + "path": "microsoft.extensions.objectpool/8.0.11", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net462/Microsoft.Extensions.ObjectPool.dll", + "lib/net462/Microsoft.Extensions.ObjectPool.xml", + "lib/net8.0/Microsoft.Extensions.ObjectPool.dll", + "lib/net8.0/Microsoft.Extensions.ObjectPool.xml", + "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.dll", + "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.xml", + "microsoft.extensions.objectpool.8.0.11.nupkg.sha512", + "microsoft.extensions.objectpool.nuspec" + ] + }, + "Microsoft.Extensions.Options/10.0.2": { + "sha512": "1De2LJjmxdqopI5AYC5dIhoZQ79AR5ayywxNF1rXrXFtKQfbQOV9+n/IsZBa7qWlr0MqoGpW8+OY2v/57udZOA==", + "type": "package", + "path": "microsoft.extensions.options/10.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net10.0/Microsoft.Extensions.Options.dll", + "lib/net10.0/Microsoft.Extensions.Options.xml", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/net9.0/Microsoft.Extensions.Options.dll", + "lib/net9.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.10.0.2.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/10.0.2": { + "sha512": "QmSiO+oLBEooGgB3i0GRXyeYRDHjllqt3k365jwfZlYWhvSHA3UL2NEVV5m8aZa041eIlblo6KMI5txvTMpTwA==", + "type": "package", + "path": "microsoft.extensions.primitives/10.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net10.0/Microsoft.Extensions.Primitives.dll", + "lib/net10.0/Microsoft.Extensions.Primitives.xml", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/net9.0/Microsoft.Extensions.Primitives.dll", + "lib/net9.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.10.0.2.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.IdentityModel.Abstractions/8.14.0": { + "sha512": "iwbCpSjD3ehfTwBhtSNEtKPK0ICun6ov7Ibx6ISNA9bfwIyzI2Siwyi9eJFCJBwxowK9xcA1mj+jBWiigeqgcQ==", + "type": "package", + "path": "microsoft.identitymodel.abstractions/8.14.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.Abstractions.dll", + "lib/net462/Microsoft.IdentityModel.Abstractions.xml", + "lib/net472/Microsoft.IdentityModel.Abstractions.dll", + "lib/net472/Microsoft.IdentityModel.Abstractions.xml", + "lib/net6.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net6.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/net8.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net8.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/net9.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/net9.0/Microsoft.IdentityModel.Abstractions.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Abstractions.xml", + "microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512", + "microsoft.identitymodel.abstractions.nuspec" + ] + }, + "Microsoft.IdentityModel.JsonWebTokens/8.14.0": { + "sha512": "4jOpiA4THdtpLyMdAb24dtj7+6GmvhOhxf5XHLYWmPKF8ApEnApal1UnJsKO4HxUWRXDA6C4WQVfYyqsRhpNpQ==", + "type": "package", + "path": "microsoft.identitymodel.jsonwebtokens/8.14.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net462/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net472/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net8.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.JsonWebTokens.xml", + "microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512", + "microsoft.identitymodel.jsonwebtokens.nuspec" + ] + }, + "Microsoft.IdentityModel.Logging/8.14.0": { + "sha512": "eqqnemdW38CKZEHS6diA50BV94QICozDZEvSrsvN3SJXUFwVB9gy+/oz76gldP7nZliA16IglXjXTCTdmU/Ejg==", + "type": "package", + "path": "microsoft.identitymodel.logging/8.14.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.Logging.dll", + "lib/net462/Microsoft.IdentityModel.Logging.xml", + "lib/net472/Microsoft.IdentityModel.Logging.dll", + "lib/net472/Microsoft.IdentityModel.Logging.xml", + "lib/net6.0/Microsoft.IdentityModel.Logging.dll", + "lib/net6.0/Microsoft.IdentityModel.Logging.xml", + "lib/net8.0/Microsoft.IdentityModel.Logging.dll", + "lib/net8.0/Microsoft.IdentityModel.Logging.xml", + "lib/net9.0/Microsoft.IdentityModel.Logging.dll", + "lib/net9.0/Microsoft.IdentityModel.Logging.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Logging.xml", + "microsoft.identitymodel.logging.8.14.0.nupkg.sha512", + "microsoft.identitymodel.logging.nuspec" + ] + }, + "Microsoft.IdentityModel.Protocols/7.1.2": { + "sha512": "SydLwMRFx6EHPWJ+N6+MVaoArN1Htt92b935O3RUWPY1yUF63zEjvd3lBu79eWdZUwedP8TN2I5V9T3nackvIQ==", + "type": "package", + "path": "microsoft.identitymodel.protocols/7.1.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Protocols.dll", + "lib/net461/Microsoft.IdentityModel.Protocols.xml", + "lib/net462/Microsoft.IdentityModel.Protocols.dll", + "lib/net462/Microsoft.IdentityModel.Protocols.xml", + "lib/net472/Microsoft.IdentityModel.Protocols.dll", + "lib/net472/Microsoft.IdentityModel.Protocols.xml", + "lib/net6.0/Microsoft.IdentityModel.Protocols.dll", + "lib/net6.0/Microsoft.IdentityModel.Protocols.xml", + "lib/net8.0/Microsoft.IdentityModel.Protocols.dll", + "lib/net8.0/Microsoft.IdentityModel.Protocols.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.xml", + "microsoft.identitymodel.protocols.7.1.2.nupkg.sha512", + "microsoft.identitymodel.protocols.nuspec" + ] + }, + "Microsoft.IdentityModel.Protocols.OpenIdConnect/7.1.2": { + "sha512": "6lHQoLXhnMQ42mGrfDkzbIOR3rzKM1W1tgTeMPLgLCqwwGw0d96xFi/UiX/fYsu7d6cD5MJiL3+4HuI8VU+sVQ==", + "type": "package", + "path": "microsoft.identitymodel.protocols.openidconnect/7.1.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net461/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net462/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net472/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net6.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/net8.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.xml", + "microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512", + "microsoft.identitymodel.protocols.openidconnect.nuspec" + ] + }, + "Microsoft.IdentityModel.Tokens/8.14.0": { + "sha512": "lKIZiBiGd36k02TCdMHp1KlNWisyIvQxcYJvIkz7P4gSQ9zi8dgh6S5Grj8NNG7HWYIPfQymGyoZ6JB5d1Lo1g==", + "type": "package", + "path": "microsoft.identitymodel.tokens/8.14.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/Microsoft.IdentityModel.Tokens.dll", + "lib/net462/Microsoft.IdentityModel.Tokens.xml", + "lib/net472/Microsoft.IdentityModel.Tokens.dll", + "lib/net472/Microsoft.IdentityModel.Tokens.xml", + "lib/net6.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net6.0/Microsoft.IdentityModel.Tokens.xml", + "lib/net8.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net8.0/Microsoft.IdentityModel.Tokens.xml", + "lib/net9.0/Microsoft.IdentityModel.Tokens.dll", + "lib/net9.0/Microsoft.IdentityModel.Tokens.xml", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll", + "lib/netstandard2.0/Microsoft.IdentityModel.Tokens.xml", + "microsoft.identitymodel.tokens.8.14.0.nupkg.sha512", + "microsoft.identitymodel.tokens.nuspec" + ] + }, + "Microsoft.Net.Http.Headers/2.3.0": { + "sha512": "/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==", + "type": "package", + "path": "microsoft.net.http.headers/2.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/netstandard2.0/Microsoft.Net.Http.Headers.dll", + "lib/netstandard2.0/Microsoft.Net.Http.Headers.xml", + "microsoft.net.http.headers.2.3.0.nupkg.sha512", + "microsoft.net.http.headers.nuspec" + ] + }, + "Microsoft.NET.Test.Sdk/17.8.0": { + "sha512": "BmTYGbD/YuDHmApIENdoyN1jCk0Rj1fJB0+B/fVekyTdVidr91IlzhqzytiUgaEAzL1ZJcYCme0MeBMYvJVzvw==", + "type": "package", + "path": "microsoft.net.test.sdk/17.8.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE_MIT.txt", + "build/net462/Microsoft.NET.Test.Sdk.props", + "build/net462/Microsoft.NET.Test.Sdk.targets", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.cs", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.fs", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.Program.vb", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.props", + "build/netcoreapp3.1/Microsoft.NET.Test.Sdk.targets", + "buildMultiTargeting/Microsoft.NET.Test.Sdk.props", + "lib/net462/_._", + "lib/netcoreapp3.1/_._", + "microsoft.net.test.sdk.17.8.0.nupkg.sha512", + "microsoft.net.test.sdk.nuspec" + ] + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "sha512": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "type": "package", + "path": "microsoft.netcore.platforms/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "microsoft.netcore.platforms.1.1.0.nupkg.sha512", + "microsoft.netcore.platforms.nuspec", + "runtime.json" + ] + }, + "Microsoft.NETCore.Targets/1.1.0": { + "sha512": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==", + "type": "package", + "path": "microsoft.netcore.targets/1.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "microsoft.netcore.targets.1.1.0.nupkg.sha512", + "microsoft.netcore.targets.nuspec", + "runtime.json" + ] + }, + "Microsoft.OpenApi/1.6.14": { + "sha512": "tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==", + "type": "package", + "path": "microsoft.openapi/1.6.14", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/netstandard2.0/Microsoft.OpenApi.dll", + "lib/netstandard2.0/Microsoft.OpenApi.pdb", + "lib/netstandard2.0/Microsoft.OpenApi.xml", + "microsoft.openapi.1.6.14.nupkg.sha512", + "microsoft.openapi.nuspec" + ] + }, + "Microsoft.TestPlatform.ObjectModel/17.8.0": { + "sha512": "AYy6vlpGMfz5kOFq99L93RGbqftW/8eQTqjT9iGXW6s9MRP3UdtY8idJ8rJcjeSja8A18IhIro5YnH3uv1nz4g==", + "type": "package", + "path": "microsoft.testplatform.objectmodel/17.8.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE_MIT.txt", + "lib/net462/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/net462/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/net462/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/net462/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/net462/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/net462/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netstandard2.0/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netstandard2.0/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/de/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/es/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/it/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll", + "lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll", + "microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512", + "microsoft.testplatform.objectmodel.nuspec" + ] + }, + "Microsoft.TestPlatform.TestHost/17.8.0": { + "sha512": "9ivcl/7SGRmOT0YYrHQGohWiT5YCpkmy/UEzldfVisLm6QxbLaK3FAJqZXI34rnRLmqqDCeMQxKINwmKwAPiDw==", + "type": "package", + "path": "microsoft.testplatform.testhost/17.8.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE_MIT.txt", + "ThirdPartyNotices.txt", + "build/netcoreapp3.1/Microsoft.TestPlatform.TestHost.props", + "build/netcoreapp3.1/x64/testhost.dll", + "build/netcoreapp3.1/x64/testhost.exe", + "build/netcoreapp3.1/x86/testhost.x86.dll", + "build/netcoreapp3.1/x86/testhost.x86.exe", + "lib/net462/_._", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll", + "lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll", + "lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/testhost.deps.json", + "lib/netcoreapp3.1/testhost.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/x64/msdia140.dll", + "lib/netcoreapp3.1/x86/msdia140.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll", + "lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll", + "microsoft.testplatform.testhost.17.8.0.nupkg.sha512", + "microsoft.testplatform.testhost.nuspec" + ] + }, + "Microsoft.VisualStudio.Azure.Containers.Tools.Targets/1.22.1": { + "sha512": "EfYANhAWqmWKoLwN6bxoiPZSOfJSO9lzX+UrU6GVhLhPub1Hd+5f0zL0/tggIA6mRz6Ebw2xCNcIsM4k+7NPng==", + "type": "package", + "path": "microsoft.visualstudio.azure.containers.tools.targets/1.22.1", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "CHANGELOG.md", + "EULA.md", + "ThirdPartyNotices.txt", + "build/Container.props", + "build/Container.targets", + "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.props", + "build/Microsoft.VisualStudio.Azure.Containers.Tools.Targets.targets", + "build/Rules/GeneralBrowseObject.xaml", + "build/Rules/cs-CZ/GeneralBrowseObject.xaml", + "build/Rules/de-DE/GeneralBrowseObject.xaml", + "build/Rules/es-ES/GeneralBrowseObject.xaml", + "build/Rules/fr-FR/GeneralBrowseObject.xaml", + "build/Rules/it-IT/GeneralBrowseObject.xaml", + "build/Rules/ja-JP/GeneralBrowseObject.xaml", + "build/Rules/ko-KR/GeneralBrowseObject.xaml", + "build/Rules/pl-PL/GeneralBrowseObject.xaml", + "build/Rules/pt-BR/GeneralBrowseObject.xaml", + "build/Rules/ru-RU/GeneralBrowseObject.xaml", + "build/Rules/tr-TR/GeneralBrowseObject.xaml", + "build/Rules/zh-CN/GeneralBrowseObject.xaml", + "build/Rules/zh-TW/GeneralBrowseObject.xaml", + "build/ToolsTarget.props", + "build/ToolsTarget.targets", + "icon.png", + "microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512", + "microsoft.visualstudio.azure.containers.tools.targets.nuspec", + "tools/Microsoft.VisualStudio.Containers.Tools.Common.dll", + "tools/Microsoft.VisualStudio.Containers.Tools.Shared.dll", + "tools/Microsoft.VisualStudio.Containers.Tools.Tasks.dll", + "tools/Newtonsoft.Json.dll", + "tools/System.Security.Principal.Windows.dll", + "tools/cs/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/cs/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/cs/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/de/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/de/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/de/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/es/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/es/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/es/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/fr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/fr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/fr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/it/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/it/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/it/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/ja/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/ja/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/ja/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/ko/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/ko/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/ko/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/pl/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/pl/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/pl/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/pt-BR/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/ru/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/ru/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/ru/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/tr/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/tr/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/tr/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/zh-Hans/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll", + "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Common.resources.dll", + "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Shared.resources.dll", + "tools/zh-Hant/Microsoft.VisualStudio.Containers.Tools.Tasks.resources.dll" + ] + }, + "Microsoft.Win32.Primitives/4.3.0": { + "sha512": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "type": "package", + "path": "microsoft.win32.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/Microsoft.Win32.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "microsoft.win32.primitives.4.3.0.nupkg.sha512", + "microsoft.win32.primitives.nuspec", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/Microsoft.Win32.Primitives.dll", + "ref/netstandard1.3/Microsoft.Win32.Primitives.dll", + "ref/netstandard1.3/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/de/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/es/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/fr/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/it/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/ja/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/ko/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/ru/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/zh-hans/Microsoft.Win32.Primitives.xml", + "ref/netstandard1.3/zh-hant/Microsoft.Win32.Primitives.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._" + ] + }, + "Moq/4.20.72": { + "sha512": "EA55cjyNn8eTNWrgrdZJH5QLFp2L43oxl1tlkoYUKIE9pRwL784OWiTXeCV5ApS+AMYEAlt7Fo03A2XfouvHmQ==", + "type": "package", + "path": "moq/4.20.72", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "icon.png", + "lib/net462/Moq.dll", + "lib/net6.0/Moq.dll", + "lib/netstandard2.0/Moq.dll", + "lib/netstandard2.1/Moq.dll", + "moq.4.20.72.nupkg.sha512", + "moq.nuspec", + "readme.md" + ] + }, + "MySqlConnector/2.3.5": { + "sha512": "AmEfUPkFl+Ev6jJ8Dhns3CYHBfD12RHzGYWuLt6DfG6/af6YvOMyPz74ZPPjBYQGRJkumD2Z48Kqm8s5DJuhLA==", + "type": "package", + "path": "mysqlconnector/2.3.5", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/MySqlConnector.dll", + "lib/net462/MySqlConnector.xml", + "lib/net471/MySqlConnector.dll", + "lib/net471/MySqlConnector.xml", + "lib/net48/MySqlConnector.dll", + "lib/net48/MySqlConnector.xml", + "lib/net6.0/MySqlConnector.dll", + "lib/net6.0/MySqlConnector.xml", + "lib/net7.0/MySqlConnector.dll", + "lib/net7.0/MySqlConnector.xml", + "lib/net8.0/MySqlConnector.dll", + "lib/net8.0/MySqlConnector.xml", + "lib/netstandard2.0/MySqlConnector.dll", + "lib/netstandard2.0/MySqlConnector.xml", + "lib/netstandard2.1/MySqlConnector.dll", + "lib/netstandard2.1/MySqlConnector.xml", + "logo.png", + "mysqlconnector.2.3.5.nupkg.sha512", + "mysqlconnector.nuspec" + ] + }, + "NETStandard.Library/1.6.1": { + "sha512": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", + "type": "package", + "path": "netstandard.library/1.6.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "netstandard.library.1.6.1.nupkg.sha512", + "netstandard.library.nuspec" + ] + }, + "Newtonsoft.Json/13.0.4": { + "sha512": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==", + "type": "package", + "path": "newtonsoft.json/13.0.4", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "README.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/net6.0/Newtonsoft.Json.dll", + "lib/net6.0/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.4.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "NuGet.Frameworks/6.5.0": { + "sha512": "QWINE2x3MbTODsWT1Gh71GaGb5icBz4chS8VYvTgsBnsi8esgN6wtHhydd7fvToWECYGq7T4cgBBDiKD/363fg==", + "type": "package", + "path": "nuget.frameworks/6.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon.png", + "lib/net472/NuGet.Frameworks.dll", + "lib/netstandard2.0/NuGet.Frameworks.dll", + "nuget.frameworks.6.5.0.nupkg.sha512", + "nuget.frameworks.nuspec" + ] + }, + "Pipelines.Sockets.Unofficial/2.2.8": { + "sha512": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==", + "type": "package", + "path": "pipelines.sockets.unofficial/2.2.8", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/Pipelines.Sockets.Unofficial.dll", + "lib/net461/Pipelines.Sockets.Unofficial.xml", + "lib/net472/Pipelines.Sockets.Unofficial.dll", + "lib/net472/Pipelines.Sockets.Unofficial.xml", + "lib/net5.0/Pipelines.Sockets.Unofficial.dll", + "lib/net5.0/Pipelines.Sockets.Unofficial.xml", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.dll", + "lib/netcoreapp3.1/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.0/Pipelines.Sockets.Unofficial.xml", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.dll", + "lib/netstandard2.1/Pipelines.Sockets.Unofficial.xml", + "pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "pipelines.sockets.unofficial.nuspec" + ] + }, + "Pomelo.EntityFrameworkCore.MySql/8.0.3": { + "sha512": "gOHP6v/nFp5V/FgHqv9mZocGqCLGofihEX9dTbLhiXX3H7SJHmGX70GIPUpiqLT+1jIfDxg1PZh9MTUKuk7Kig==", + "type": "package", + "path": "pomelo.entityframeworkcore.mysql/8.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon.png", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.dll", + "lib/net8.0/Pomelo.EntityFrameworkCore.MySql.xml", + "pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512", + "pomelo.entityframeworkcore.mysql.nuspec" + ] + }, + "RabbitMQ.Client/7.1.2": { + "sha512": "y3c6ulgULScWthHw5PLM1ShHRLhxg0vCtzX/hh61gRgNecL3ZC3WoBW2HYHoXOVRqTl99Br9E7CZEytGZEsCyQ==", + "type": "package", + "path": "rabbitmq.client/7.1.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "icon.png", + "lib/net8.0/RabbitMQ.Client.dll", + "lib/net8.0/RabbitMQ.Client.xml", + "lib/netstandard2.0/RabbitMQ.Client.dll", + "lib/netstandard2.0/RabbitMQ.Client.xml", + "rabbitmq.client.7.1.2.nupkg.sha512", + "rabbitmq.client.nuspec" + ] + }, + "RedLock.net/2.3.2": { + "sha512": "jlrALAArm4dCE292U3EtRoMnVKJ9M6sunbZn/oG5OuzlGtTpusXBfvDrnGWbgGDlWV027f5E9H5CiVnPxiq8+g==", + "type": "package", + "path": "redlock.net/2.3.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net461/RedLockNet.Abstractions.dll", + "lib/net461/RedLockNet.SERedis.dll", + "lib/net472/RedLockNet.Abstractions.dll", + "lib/net472/RedLockNet.SERedis.dll", + "lib/netstandard2.0/RedLockNet.Abstractions.dll", + "lib/netstandard2.0/RedLockNet.SERedis.dll", + "redlock-icon.png", + "redlock.net.2.3.2.nupkg.sha512", + "redlock.net.nuspec" + ] + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "type": "package", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/debian.8-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "type": "package", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/fedora.23-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "type": "package", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/fedora.24-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.native.System/4.3.0": { + "sha512": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "type": "package", + "path": "runtime.native.system/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.4.3.0.nupkg.sha512", + "runtime.native.system.nuspec" + ] + }, + "runtime.native.System.IO.Compression/4.3.0": { + "sha512": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "type": "package", + "path": "runtime.native.system.io.compression/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.io.compression.4.3.0.nupkg.sha512", + "runtime.native.system.io.compression.nuspec" + ] + }, + "runtime.native.System.Net.Http/4.3.0": { + "sha512": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "type": "package", + "path": "runtime.native.system.net.http/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.net.http.4.3.0.nupkg.sha512", + "runtime.native.system.net.http.nuspec" + ] + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "sha512": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "type": "package", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", + "runtime.native.system.security.cryptography.apple.nuspec" + ] + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "type": "package", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/_._", + "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.native.system.security.cryptography.openssl.nuspec" + ] + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "type": "package", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/opensuse.13.2-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "type": "package", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/opensuse.42.1-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "sha512": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "type": "package", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.nuspec", + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.Apple.dylib" + ] + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "type": "package", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/osx.10.10-x64/native/System.Security.Cryptography.Native.OpenSsl.dylib" + ] + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "type": "package", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/rhel.7-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "type": "package", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/ubuntu.14.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "type": "package", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/ubuntu.16.04-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "type": "package", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.nuspec", + "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so" + ] + }, + "StackExchange.Redis/2.9.32": { + "sha512": "j5Rjbf7gWz5izrn0UWQy9RlQY4cQDPkwJfVqATnVsOa/+zzJrps12LOgacMsDl/Vit2f01cDiDkG/Rst8v2iGw==", + "type": "package", + "path": "stackexchange.redis/2.9.32", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net461/StackExchange.Redis.dll", + "lib/net461/StackExchange.Redis.xml", + "lib/net472/StackExchange.Redis.dll", + "lib/net472/StackExchange.Redis.xml", + "lib/net6.0/StackExchange.Redis.dll", + "lib/net6.0/StackExchange.Redis.xml", + "lib/net8.0/StackExchange.Redis.dll", + "lib/net8.0/StackExchange.Redis.xml", + "lib/netcoreapp3.1/StackExchange.Redis.dll", + "lib/netcoreapp3.1/StackExchange.Redis.xml", + "lib/netstandard2.0/StackExchange.Redis.dll", + "lib/netstandard2.0/StackExchange.Redis.xml", + "stackexchange.redis.2.9.32.nupkg.sha512", + "stackexchange.redis.nuspec" + ] + }, + "Swashbuckle.AspNetCore/6.6.2": { + "sha512": "+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==", + "type": "package", + "path": "swashbuckle.aspnetcore/6.6.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "build/Swashbuckle.AspNetCore.props", + "swashbuckle.aspnetcore.6.6.2.nupkg.sha512", + "swashbuckle.aspnetcore.nuspec" + ] + }, + "Swashbuckle.AspNetCore.Swagger/6.6.2": { + "sha512": "ovgPTSYX83UrQUWiS5vzDcJ8TEX1MAxBgDFMK45rC24MorHEPQlZAHlaXj/yth4Zf6xcktpUgTEBvffRQVwDKA==", + "type": "package", + "path": "swashbuckle.aspnetcore.swagger/6.6.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net5.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net5.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net5.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net6.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/net7.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net7.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net7.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.Swagger.xml", + "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.dll", + "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.pdb", + "lib/netstandard2.0/Swashbuckle.AspNetCore.Swagger.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", + "swashbuckle.aspnetcore.swagger.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerGen/6.6.2": { + "sha512": "zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggergen/6.6.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net7.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.dll", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.pdb", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerGen.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", + "swashbuckle.aspnetcore.swaggergen.nuspec" + ] + }, + "Swashbuckle.AspNetCore.SwaggerUI/6.6.2": { + "sha512": "mBBb+/8Hm2Q3Wygag+hu2jj69tZW5psuv0vMRXY07Wy+Rrj40vRP8ZTbKBhs91r45/HXT4aY4z0iSBYx1h6JvA==", + "type": "package", + "path": "swashbuckle.aspnetcore.swaggerui/6.6.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net5.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net7.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/netcoreapp3.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.dll", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.pdb", + "lib/netstandard2.0/Swashbuckle.AspNetCore.SwaggerUI.xml", + "package-readme.md", + "swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512", + "swashbuckle.aspnetcore.swaggerui.nuspec" + ] + }, + "System.AppContext/4.3.0": { + "sha512": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", + "type": "package", + "path": "system.appcontext/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.AppContext.dll", + "lib/net463/System.AppContext.dll", + "lib/netcore50/System.AppContext.dll", + "lib/netstandard1.6/System.AppContext.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.AppContext.dll", + "ref/net463/System.AppContext.dll", + "ref/netstandard/_._", + "ref/netstandard1.3/System.AppContext.dll", + "ref/netstandard1.3/System.AppContext.xml", + "ref/netstandard1.3/de/System.AppContext.xml", + "ref/netstandard1.3/es/System.AppContext.xml", + "ref/netstandard1.3/fr/System.AppContext.xml", + "ref/netstandard1.3/it/System.AppContext.xml", + "ref/netstandard1.3/ja/System.AppContext.xml", + "ref/netstandard1.3/ko/System.AppContext.xml", + "ref/netstandard1.3/ru/System.AppContext.xml", + "ref/netstandard1.3/zh-hans/System.AppContext.xml", + "ref/netstandard1.3/zh-hant/System.AppContext.xml", + "ref/netstandard1.6/System.AppContext.dll", + "ref/netstandard1.6/System.AppContext.xml", + "ref/netstandard1.6/de/System.AppContext.xml", + "ref/netstandard1.6/es/System.AppContext.xml", + "ref/netstandard1.6/fr/System.AppContext.xml", + "ref/netstandard1.6/it/System.AppContext.xml", + "ref/netstandard1.6/ja/System.AppContext.xml", + "ref/netstandard1.6/ko/System.AppContext.xml", + "ref/netstandard1.6/ru/System.AppContext.xml", + "ref/netstandard1.6/zh-hans/System.AppContext.xml", + "ref/netstandard1.6/zh-hant/System.AppContext.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.AppContext.dll", + "system.appcontext.4.3.0.nupkg.sha512", + "system.appcontext.nuspec" + ] + }, + "System.Buffers/4.6.0": { + "sha512": "lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==", + "type": "package", + "path": "system.buffers/4.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net461/System.Buffers.targets", + "buildTransitive/net462/_._", + "lib/net462/System.Buffers.dll", + "lib/net462/System.Buffers.xml", + "lib/netcoreapp2.1/_._", + "lib/netstandard2.0/System.Buffers.dll", + "lib/netstandard2.0/System.Buffers.xml", + "system.buffers.4.6.0.nupkg.sha512", + "system.buffers.nuspec" + ] + }, + "System.Collections/4.3.0": { + "sha512": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "type": "package", + "path": "system.collections/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Collections.dll", + "ref/netcore50/System.Collections.xml", + "ref/netcore50/de/System.Collections.xml", + "ref/netcore50/es/System.Collections.xml", + "ref/netcore50/fr/System.Collections.xml", + "ref/netcore50/it/System.Collections.xml", + "ref/netcore50/ja/System.Collections.xml", + "ref/netcore50/ko/System.Collections.xml", + "ref/netcore50/ru/System.Collections.xml", + "ref/netcore50/zh-hans/System.Collections.xml", + "ref/netcore50/zh-hant/System.Collections.xml", + "ref/netstandard1.0/System.Collections.dll", + "ref/netstandard1.0/System.Collections.xml", + "ref/netstandard1.0/de/System.Collections.xml", + "ref/netstandard1.0/es/System.Collections.xml", + "ref/netstandard1.0/fr/System.Collections.xml", + "ref/netstandard1.0/it/System.Collections.xml", + "ref/netstandard1.0/ja/System.Collections.xml", + "ref/netstandard1.0/ko/System.Collections.xml", + "ref/netstandard1.0/ru/System.Collections.xml", + "ref/netstandard1.0/zh-hans/System.Collections.xml", + "ref/netstandard1.0/zh-hant/System.Collections.xml", + "ref/netstandard1.3/System.Collections.dll", + "ref/netstandard1.3/System.Collections.xml", + "ref/netstandard1.3/de/System.Collections.xml", + "ref/netstandard1.3/es/System.Collections.xml", + "ref/netstandard1.3/fr/System.Collections.xml", + "ref/netstandard1.3/it/System.Collections.xml", + "ref/netstandard1.3/ja/System.Collections.xml", + "ref/netstandard1.3/ko/System.Collections.xml", + "ref/netstandard1.3/ru/System.Collections.xml", + "ref/netstandard1.3/zh-hans/System.Collections.xml", + "ref/netstandard1.3/zh-hant/System.Collections.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.collections.4.3.0.nupkg.sha512", + "system.collections.nuspec" + ] + }, + "System.Collections.Concurrent/4.3.0": { + "sha512": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "type": "package", + "path": "system.collections.concurrent/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Collections.Concurrent.dll", + "lib/netstandard1.3/System.Collections.Concurrent.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Collections.Concurrent.dll", + "ref/netcore50/System.Collections.Concurrent.xml", + "ref/netcore50/de/System.Collections.Concurrent.xml", + "ref/netcore50/es/System.Collections.Concurrent.xml", + "ref/netcore50/fr/System.Collections.Concurrent.xml", + "ref/netcore50/it/System.Collections.Concurrent.xml", + "ref/netcore50/ja/System.Collections.Concurrent.xml", + "ref/netcore50/ko/System.Collections.Concurrent.xml", + "ref/netcore50/ru/System.Collections.Concurrent.xml", + "ref/netcore50/zh-hans/System.Collections.Concurrent.xml", + "ref/netcore50/zh-hant/System.Collections.Concurrent.xml", + "ref/netstandard1.1/System.Collections.Concurrent.dll", + "ref/netstandard1.1/System.Collections.Concurrent.xml", + "ref/netstandard1.1/de/System.Collections.Concurrent.xml", + "ref/netstandard1.1/es/System.Collections.Concurrent.xml", + "ref/netstandard1.1/fr/System.Collections.Concurrent.xml", + "ref/netstandard1.1/it/System.Collections.Concurrent.xml", + "ref/netstandard1.1/ja/System.Collections.Concurrent.xml", + "ref/netstandard1.1/ko/System.Collections.Concurrent.xml", + "ref/netstandard1.1/ru/System.Collections.Concurrent.xml", + "ref/netstandard1.1/zh-hans/System.Collections.Concurrent.xml", + "ref/netstandard1.1/zh-hant/System.Collections.Concurrent.xml", + "ref/netstandard1.3/System.Collections.Concurrent.dll", + "ref/netstandard1.3/System.Collections.Concurrent.xml", + "ref/netstandard1.3/de/System.Collections.Concurrent.xml", + "ref/netstandard1.3/es/System.Collections.Concurrent.xml", + "ref/netstandard1.3/fr/System.Collections.Concurrent.xml", + "ref/netstandard1.3/it/System.Collections.Concurrent.xml", + "ref/netstandard1.3/ja/System.Collections.Concurrent.xml", + "ref/netstandard1.3/ko/System.Collections.Concurrent.xml", + "ref/netstandard1.3/ru/System.Collections.Concurrent.xml", + "ref/netstandard1.3/zh-hans/System.Collections.Concurrent.xml", + "ref/netstandard1.3/zh-hant/System.Collections.Concurrent.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.collections.concurrent.4.3.0.nupkg.sha512", + "system.collections.concurrent.nuspec" + ] + }, + "System.Console/4.3.0": { + "sha512": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", + "type": "package", + "path": "system.console/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Console.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Console.dll", + "ref/netstandard1.3/System.Console.dll", + "ref/netstandard1.3/System.Console.xml", + "ref/netstandard1.3/de/System.Console.xml", + "ref/netstandard1.3/es/System.Console.xml", + "ref/netstandard1.3/fr/System.Console.xml", + "ref/netstandard1.3/it/System.Console.xml", + "ref/netstandard1.3/ja/System.Console.xml", + "ref/netstandard1.3/ko/System.Console.xml", + "ref/netstandard1.3/ru/System.Console.xml", + "ref/netstandard1.3/zh-hans/System.Console.xml", + "ref/netstandard1.3/zh-hant/System.Console.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.console.4.3.0.nupkg.sha512", + "system.console.nuspec" + ] + }, + "System.Diagnostics.Debug/4.3.0": { + "sha512": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "type": "package", + "path": "system.diagnostics.debug/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Diagnostics.Debug.dll", + "ref/netcore50/System.Diagnostics.Debug.xml", + "ref/netcore50/de/System.Diagnostics.Debug.xml", + "ref/netcore50/es/System.Diagnostics.Debug.xml", + "ref/netcore50/fr/System.Diagnostics.Debug.xml", + "ref/netcore50/it/System.Diagnostics.Debug.xml", + "ref/netcore50/ja/System.Diagnostics.Debug.xml", + "ref/netcore50/ko/System.Diagnostics.Debug.xml", + "ref/netcore50/ru/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Debug.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/System.Diagnostics.Debug.dll", + "ref/netstandard1.0/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/de/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/es/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/fr/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/it/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/ja/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/ko/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/ru/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/zh-hans/System.Diagnostics.Debug.xml", + "ref/netstandard1.0/zh-hant/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/System.Diagnostics.Debug.dll", + "ref/netstandard1.3/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/de/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/es/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/fr/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/it/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/ja/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/ko/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/ru/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/zh-hans/System.Diagnostics.Debug.xml", + "ref/netstandard1.3/zh-hant/System.Diagnostics.Debug.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.diagnostics.debug.4.3.0.nupkg.sha512", + "system.diagnostics.debug.nuspec" + ] + }, + "System.Diagnostics.DiagnosticSource/10.0.2": { + "sha512": "lYWBy8fKkJHaRcOuw30d67PrtVjR5754sz5Wl76s8P+vJ9FSThh9b7LIcTSODx1LY7NB3Srvg+JMnzd67qNZOw==", + "type": "package", + "path": "system.diagnostics.diagnosticsource/10.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", + "lib/net10.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net10.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net462/System.Diagnostics.DiagnosticSource.dll", + "lib/net462/System.Diagnostics.DiagnosticSource.xml", + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net8.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net9.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net9.0/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", + "system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.EventLog/6.0.0": { + "sha512": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==", + "type": "package", + "path": "system.diagnostics.eventlog/6.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/netcoreapp2.0/System.Diagnostics.EventLog.targets", + "buildTransitive/netcoreapp3.1/_._", + "lib/net461/System.Diagnostics.EventLog.dll", + "lib/net461/System.Diagnostics.EventLog.xml", + "lib/net6.0/System.Diagnostics.EventLog.dll", + "lib/net6.0/System.Diagnostics.EventLog.xml", + "lib/netcoreapp3.1/System.Diagnostics.EventLog.dll", + "lib/netcoreapp3.1/System.Diagnostics.EventLog.xml", + "lib/netstandard2.0/System.Diagnostics.EventLog.dll", + "lib/netstandard2.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/net6.0/System.Diagnostics.EventLog.xml", + "runtimes/win/lib/netcoreapp3.1/System.Diagnostics.EventLog.Messages.dll", + "runtimes/win/lib/netcoreapp3.1/System.Diagnostics.EventLog.dll", + "runtimes/win/lib/netcoreapp3.1/System.Diagnostics.EventLog.xml", + "system.diagnostics.eventlog.6.0.0.nupkg.sha512", + "system.diagnostics.eventlog.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.Tools/4.3.0": { + "sha512": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "type": "package", + "path": "system.diagnostics.tools/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Diagnostics.Tools.dll", + "ref/netcore50/System.Diagnostics.Tools.xml", + "ref/netcore50/de/System.Diagnostics.Tools.xml", + "ref/netcore50/es/System.Diagnostics.Tools.xml", + "ref/netcore50/fr/System.Diagnostics.Tools.xml", + "ref/netcore50/it/System.Diagnostics.Tools.xml", + "ref/netcore50/ja/System.Diagnostics.Tools.xml", + "ref/netcore50/ko/System.Diagnostics.Tools.xml", + "ref/netcore50/ru/System.Diagnostics.Tools.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Tools.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/System.Diagnostics.Tools.dll", + "ref/netstandard1.0/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/de/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/es/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/fr/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/it/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/ja/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/ko/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/ru/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/zh-hans/System.Diagnostics.Tools.xml", + "ref/netstandard1.0/zh-hant/System.Diagnostics.Tools.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.diagnostics.tools.4.3.0.nupkg.sha512", + "system.diagnostics.tools.nuspec" + ] + }, + "System.Diagnostics.Tracing/4.3.0": { + "sha512": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "type": "package", + "path": "system.diagnostics.tracing/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Diagnostics.Tracing.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Diagnostics.Tracing.dll", + "ref/netcore50/System.Diagnostics.Tracing.dll", + "ref/netcore50/System.Diagnostics.Tracing.xml", + "ref/netcore50/de/System.Diagnostics.Tracing.xml", + "ref/netcore50/es/System.Diagnostics.Tracing.xml", + "ref/netcore50/fr/System.Diagnostics.Tracing.xml", + "ref/netcore50/it/System.Diagnostics.Tracing.xml", + "ref/netcore50/ja/System.Diagnostics.Tracing.xml", + "ref/netcore50/ko/System.Diagnostics.Tracing.xml", + "ref/netcore50/ru/System.Diagnostics.Tracing.xml", + "ref/netcore50/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netcore50/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/System.Diagnostics.Tracing.dll", + "ref/netstandard1.1/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.1/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/System.Diagnostics.Tracing.dll", + "ref/netstandard1.2/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.2/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/System.Diagnostics.Tracing.dll", + "ref/netstandard1.3/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.3/zh-hant/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/System.Diagnostics.Tracing.dll", + "ref/netstandard1.5/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/de/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/es/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/fr/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/it/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/ja/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/ko/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/ru/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/zh-hans/System.Diagnostics.Tracing.xml", + "ref/netstandard1.5/zh-hant/System.Diagnostics.Tracing.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.diagnostics.tracing.4.3.0.nupkg.sha512", + "system.diagnostics.tracing.nuspec" + ] + }, + "System.Globalization/4.3.0": { + "sha512": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "type": "package", + "path": "system.globalization/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Globalization.dll", + "ref/netcore50/System.Globalization.xml", + "ref/netcore50/de/System.Globalization.xml", + "ref/netcore50/es/System.Globalization.xml", + "ref/netcore50/fr/System.Globalization.xml", + "ref/netcore50/it/System.Globalization.xml", + "ref/netcore50/ja/System.Globalization.xml", + "ref/netcore50/ko/System.Globalization.xml", + "ref/netcore50/ru/System.Globalization.xml", + "ref/netcore50/zh-hans/System.Globalization.xml", + "ref/netcore50/zh-hant/System.Globalization.xml", + "ref/netstandard1.0/System.Globalization.dll", + "ref/netstandard1.0/System.Globalization.xml", + "ref/netstandard1.0/de/System.Globalization.xml", + "ref/netstandard1.0/es/System.Globalization.xml", + "ref/netstandard1.0/fr/System.Globalization.xml", + "ref/netstandard1.0/it/System.Globalization.xml", + "ref/netstandard1.0/ja/System.Globalization.xml", + "ref/netstandard1.0/ko/System.Globalization.xml", + "ref/netstandard1.0/ru/System.Globalization.xml", + "ref/netstandard1.0/zh-hans/System.Globalization.xml", + "ref/netstandard1.0/zh-hant/System.Globalization.xml", + "ref/netstandard1.3/System.Globalization.dll", + "ref/netstandard1.3/System.Globalization.xml", + "ref/netstandard1.3/de/System.Globalization.xml", + "ref/netstandard1.3/es/System.Globalization.xml", + "ref/netstandard1.3/fr/System.Globalization.xml", + "ref/netstandard1.3/it/System.Globalization.xml", + "ref/netstandard1.3/ja/System.Globalization.xml", + "ref/netstandard1.3/ko/System.Globalization.xml", + "ref/netstandard1.3/ru/System.Globalization.xml", + "ref/netstandard1.3/zh-hans/System.Globalization.xml", + "ref/netstandard1.3/zh-hant/System.Globalization.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.globalization.4.3.0.nupkg.sha512", + "system.globalization.nuspec" + ] + }, + "System.Globalization.Calendars/4.3.0": { + "sha512": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "type": "package", + "path": "system.globalization.calendars/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Globalization.Calendars.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Globalization.Calendars.dll", + "ref/netstandard1.3/System.Globalization.Calendars.dll", + "ref/netstandard1.3/System.Globalization.Calendars.xml", + "ref/netstandard1.3/de/System.Globalization.Calendars.xml", + "ref/netstandard1.3/es/System.Globalization.Calendars.xml", + "ref/netstandard1.3/fr/System.Globalization.Calendars.xml", + "ref/netstandard1.3/it/System.Globalization.Calendars.xml", + "ref/netstandard1.3/ja/System.Globalization.Calendars.xml", + "ref/netstandard1.3/ko/System.Globalization.Calendars.xml", + "ref/netstandard1.3/ru/System.Globalization.Calendars.xml", + "ref/netstandard1.3/zh-hans/System.Globalization.Calendars.xml", + "ref/netstandard1.3/zh-hant/System.Globalization.Calendars.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.globalization.calendars.4.3.0.nupkg.sha512", + "system.globalization.calendars.nuspec" + ] + }, + "System.Globalization.Extensions/4.3.0": { + "sha512": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "type": "package", + "path": "system.globalization.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Globalization.Extensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Globalization.Extensions.dll", + "ref/netstandard1.3/System.Globalization.Extensions.dll", + "ref/netstandard1.3/System.Globalization.Extensions.xml", + "ref/netstandard1.3/de/System.Globalization.Extensions.xml", + "ref/netstandard1.3/es/System.Globalization.Extensions.xml", + "ref/netstandard1.3/fr/System.Globalization.Extensions.xml", + "ref/netstandard1.3/it/System.Globalization.Extensions.xml", + "ref/netstandard1.3/ja/System.Globalization.Extensions.xml", + "ref/netstandard1.3/ko/System.Globalization.Extensions.xml", + "ref/netstandard1.3/ru/System.Globalization.Extensions.xml", + "ref/netstandard1.3/zh-hans/System.Globalization.Extensions.xml", + "ref/netstandard1.3/zh-hant/System.Globalization.Extensions.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.Globalization.Extensions.dll", + "runtimes/win/lib/net46/System.Globalization.Extensions.dll", + "runtimes/win/lib/netstandard1.3/System.Globalization.Extensions.dll", + "system.globalization.extensions.4.3.0.nupkg.sha512", + "system.globalization.extensions.nuspec" + ] + }, + "System.IdentityModel.Tokens.Jwt/8.14.0": { + "sha512": "EYGgN/S+HK7S6F3GaaPLFAfK0UzMrkXFyWCvXpQWFYmZln3dqtbyIO7VuTM/iIIPMzkelg8ZLlBPvMhxj6nOAA==", + "type": "package", + "path": "system.identitymodel.tokens.jwt/8.14.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net462/System.IdentityModel.Tokens.Jwt.dll", + "lib/net462/System.IdentityModel.Tokens.Jwt.xml", + "lib/net472/System.IdentityModel.Tokens.Jwt.dll", + "lib/net472/System.IdentityModel.Tokens.Jwt.xml", + "lib/net6.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net6.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/net8.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net8.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/net9.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/net9.0/System.IdentityModel.Tokens.Jwt.xml", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.dll", + "lib/netstandard2.0/System.IdentityModel.Tokens.Jwt.xml", + "system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512", + "system.identitymodel.tokens.jwt.nuspec" + ] + }, + "System.IO/4.3.0": { + "sha512": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "type": "package", + "path": "system.io/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.IO.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.IO.dll", + "ref/netcore50/System.IO.dll", + "ref/netcore50/System.IO.xml", + "ref/netcore50/de/System.IO.xml", + "ref/netcore50/es/System.IO.xml", + "ref/netcore50/fr/System.IO.xml", + "ref/netcore50/it/System.IO.xml", + "ref/netcore50/ja/System.IO.xml", + "ref/netcore50/ko/System.IO.xml", + "ref/netcore50/ru/System.IO.xml", + "ref/netcore50/zh-hans/System.IO.xml", + "ref/netcore50/zh-hant/System.IO.xml", + "ref/netstandard1.0/System.IO.dll", + "ref/netstandard1.0/System.IO.xml", + "ref/netstandard1.0/de/System.IO.xml", + "ref/netstandard1.0/es/System.IO.xml", + "ref/netstandard1.0/fr/System.IO.xml", + "ref/netstandard1.0/it/System.IO.xml", + "ref/netstandard1.0/ja/System.IO.xml", + "ref/netstandard1.0/ko/System.IO.xml", + "ref/netstandard1.0/ru/System.IO.xml", + "ref/netstandard1.0/zh-hans/System.IO.xml", + "ref/netstandard1.0/zh-hant/System.IO.xml", + "ref/netstandard1.3/System.IO.dll", + "ref/netstandard1.3/System.IO.xml", + "ref/netstandard1.3/de/System.IO.xml", + "ref/netstandard1.3/es/System.IO.xml", + "ref/netstandard1.3/fr/System.IO.xml", + "ref/netstandard1.3/it/System.IO.xml", + "ref/netstandard1.3/ja/System.IO.xml", + "ref/netstandard1.3/ko/System.IO.xml", + "ref/netstandard1.3/ru/System.IO.xml", + "ref/netstandard1.3/zh-hans/System.IO.xml", + "ref/netstandard1.3/zh-hant/System.IO.xml", + "ref/netstandard1.5/System.IO.dll", + "ref/netstandard1.5/System.IO.xml", + "ref/netstandard1.5/de/System.IO.xml", + "ref/netstandard1.5/es/System.IO.xml", + "ref/netstandard1.5/fr/System.IO.xml", + "ref/netstandard1.5/it/System.IO.xml", + "ref/netstandard1.5/ja/System.IO.xml", + "ref/netstandard1.5/ko/System.IO.xml", + "ref/netstandard1.5/ru/System.IO.xml", + "ref/netstandard1.5/zh-hans/System.IO.xml", + "ref/netstandard1.5/zh-hant/System.IO.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.4.3.0.nupkg.sha512", + "system.io.nuspec" + ] + }, + "System.IO.Compression/4.3.0": { + "sha512": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "type": "package", + "path": "system.io.compression/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net46/System.IO.Compression.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net46/System.IO.Compression.dll", + "ref/netcore50/System.IO.Compression.dll", + "ref/netcore50/System.IO.Compression.xml", + "ref/netcore50/de/System.IO.Compression.xml", + "ref/netcore50/es/System.IO.Compression.xml", + "ref/netcore50/fr/System.IO.Compression.xml", + "ref/netcore50/it/System.IO.Compression.xml", + "ref/netcore50/ja/System.IO.Compression.xml", + "ref/netcore50/ko/System.IO.Compression.xml", + "ref/netcore50/ru/System.IO.Compression.xml", + "ref/netcore50/zh-hans/System.IO.Compression.xml", + "ref/netcore50/zh-hant/System.IO.Compression.xml", + "ref/netstandard1.1/System.IO.Compression.dll", + "ref/netstandard1.1/System.IO.Compression.xml", + "ref/netstandard1.1/de/System.IO.Compression.xml", + "ref/netstandard1.1/es/System.IO.Compression.xml", + "ref/netstandard1.1/fr/System.IO.Compression.xml", + "ref/netstandard1.1/it/System.IO.Compression.xml", + "ref/netstandard1.1/ja/System.IO.Compression.xml", + "ref/netstandard1.1/ko/System.IO.Compression.xml", + "ref/netstandard1.1/ru/System.IO.Compression.xml", + "ref/netstandard1.1/zh-hans/System.IO.Compression.xml", + "ref/netstandard1.1/zh-hant/System.IO.Compression.xml", + "ref/netstandard1.3/System.IO.Compression.dll", + "ref/netstandard1.3/System.IO.Compression.xml", + "ref/netstandard1.3/de/System.IO.Compression.xml", + "ref/netstandard1.3/es/System.IO.Compression.xml", + "ref/netstandard1.3/fr/System.IO.Compression.xml", + "ref/netstandard1.3/it/System.IO.Compression.xml", + "ref/netstandard1.3/ja/System.IO.Compression.xml", + "ref/netstandard1.3/ko/System.IO.Compression.xml", + "ref/netstandard1.3/ru/System.IO.Compression.xml", + "ref/netstandard1.3/zh-hans/System.IO.Compression.xml", + "ref/netstandard1.3/zh-hant/System.IO.Compression.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll", + "runtimes/win/lib/net46/System.IO.Compression.dll", + "runtimes/win/lib/netstandard1.3/System.IO.Compression.dll", + "system.io.compression.4.3.0.nupkg.sha512", + "system.io.compression.nuspec" + ] + }, + "System.IO.Compression.ZipFile/4.3.0": { + "sha512": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", + "type": "package", + "path": "system.io.compression.zipfile/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.Compression.ZipFile.dll", + "lib/netstandard1.3/System.IO.Compression.ZipFile.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.Compression.ZipFile.dll", + "ref/netstandard1.3/System.IO.Compression.ZipFile.dll", + "ref/netstandard1.3/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/de/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/es/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/fr/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/it/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/ja/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/ko/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/ru/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/zh-hans/System.IO.Compression.ZipFile.xml", + "ref/netstandard1.3/zh-hant/System.IO.Compression.ZipFile.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.compression.zipfile.4.3.0.nupkg.sha512", + "system.io.compression.zipfile.nuspec" + ] + }, + "System.IO.FileSystem/4.3.0": { + "sha512": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "type": "package", + "path": "system.io.filesystem/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.FileSystem.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.FileSystem.dll", + "ref/netstandard1.3/System.IO.FileSystem.dll", + "ref/netstandard1.3/System.IO.FileSystem.xml", + "ref/netstandard1.3/de/System.IO.FileSystem.xml", + "ref/netstandard1.3/es/System.IO.FileSystem.xml", + "ref/netstandard1.3/fr/System.IO.FileSystem.xml", + "ref/netstandard1.3/it/System.IO.FileSystem.xml", + "ref/netstandard1.3/ja/System.IO.FileSystem.xml", + "ref/netstandard1.3/ko/System.IO.FileSystem.xml", + "ref/netstandard1.3/ru/System.IO.FileSystem.xml", + "ref/netstandard1.3/zh-hans/System.IO.FileSystem.xml", + "ref/netstandard1.3/zh-hant/System.IO.FileSystem.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.filesystem.4.3.0.nupkg.sha512", + "system.io.filesystem.nuspec" + ] + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "sha512": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "type": "package", + "path": "system.io.filesystem.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.FileSystem.Primitives.dll", + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.IO.FileSystem.Primitives.dll", + "ref/netstandard1.3/System.IO.FileSystem.Primitives.dll", + "ref/netstandard1.3/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/de/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/es/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/fr/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/it/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/ja/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/ko/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/ru/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/zh-hans/System.IO.FileSystem.Primitives.xml", + "ref/netstandard1.3/zh-hant/System.IO.FileSystem.Primitives.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.io.filesystem.primitives.4.3.0.nupkg.sha512", + "system.io.filesystem.primitives.nuspec" + ] + }, + "System.IO.Pipelines/8.0.0": { + "sha512": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "type": "package", + "path": "system.io.pipelines/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Pipelines.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "lib/net462/System.IO.Pipelines.dll", + "lib/net462/System.IO.Pipelines.xml", + "lib/net6.0/System.IO.Pipelines.dll", + "lib/net6.0/System.IO.Pipelines.xml", + "lib/net7.0/System.IO.Pipelines.dll", + "lib/net7.0/System.IO.Pipelines.xml", + "lib/net8.0/System.IO.Pipelines.dll", + "lib/net8.0/System.IO.Pipelines.xml", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.xml", + "system.io.pipelines.8.0.0.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Linq/4.3.0": { + "sha512": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "type": "package", + "path": "system.linq/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net463/System.Linq.dll", + "lib/netcore50/System.Linq.dll", + "lib/netstandard1.6/System.Linq.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net463/System.Linq.dll", + "ref/netcore50/System.Linq.dll", + "ref/netcore50/System.Linq.xml", + "ref/netcore50/de/System.Linq.xml", + "ref/netcore50/es/System.Linq.xml", + "ref/netcore50/fr/System.Linq.xml", + "ref/netcore50/it/System.Linq.xml", + "ref/netcore50/ja/System.Linq.xml", + "ref/netcore50/ko/System.Linq.xml", + "ref/netcore50/ru/System.Linq.xml", + "ref/netcore50/zh-hans/System.Linq.xml", + "ref/netcore50/zh-hant/System.Linq.xml", + "ref/netstandard1.0/System.Linq.dll", + "ref/netstandard1.0/System.Linq.xml", + "ref/netstandard1.0/de/System.Linq.xml", + "ref/netstandard1.0/es/System.Linq.xml", + "ref/netstandard1.0/fr/System.Linq.xml", + "ref/netstandard1.0/it/System.Linq.xml", + "ref/netstandard1.0/ja/System.Linq.xml", + "ref/netstandard1.0/ko/System.Linq.xml", + "ref/netstandard1.0/ru/System.Linq.xml", + "ref/netstandard1.0/zh-hans/System.Linq.xml", + "ref/netstandard1.0/zh-hant/System.Linq.xml", + "ref/netstandard1.6/System.Linq.dll", + "ref/netstandard1.6/System.Linq.xml", + "ref/netstandard1.6/de/System.Linq.xml", + "ref/netstandard1.6/es/System.Linq.xml", + "ref/netstandard1.6/fr/System.Linq.xml", + "ref/netstandard1.6/it/System.Linq.xml", + "ref/netstandard1.6/ja/System.Linq.xml", + "ref/netstandard1.6/ko/System.Linq.xml", + "ref/netstandard1.6/ru/System.Linq.xml", + "ref/netstandard1.6/zh-hans/System.Linq.xml", + "ref/netstandard1.6/zh-hant/System.Linq.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.linq.4.3.0.nupkg.sha512", + "system.linq.nuspec" + ] + }, + "System.Linq.Expressions/4.3.0": { + "sha512": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "type": "package", + "path": "system.linq.expressions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net463/System.Linq.Expressions.dll", + "lib/netcore50/System.Linq.Expressions.dll", + "lib/netstandard1.6/System.Linq.Expressions.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net463/System.Linq.Expressions.dll", + "ref/netcore50/System.Linq.Expressions.dll", + "ref/netcore50/System.Linq.Expressions.xml", + "ref/netcore50/de/System.Linq.Expressions.xml", + "ref/netcore50/es/System.Linq.Expressions.xml", + "ref/netcore50/fr/System.Linq.Expressions.xml", + "ref/netcore50/it/System.Linq.Expressions.xml", + "ref/netcore50/ja/System.Linq.Expressions.xml", + "ref/netcore50/ko/System.Linq.Expressions.xml", + "ref/netcore50/ru/System.Linq.Expressions.xml", + "ref/netcore50/zh-hans/System.Linq.Expressions.xml", + "ref/netcore50/zh-hant/System.Linq.Expressions.xml", + "ref/netstandard1.0/System.Linq.Expressions.dll", + "ref/netstandard1.0/System.Linq.Expressions.xml", + "ref/netstandard1.0/de/System.Linq.Expressions.xml", + "ref/netstandard1.0/es/System.Linq.Expressions.xml", + "ref/netstandard1.0/fr/System.Linq.Expressions.xml", + "ref/netstandard1.0/it/System.Linq.Expressions.xml", + "ref/netstandard1.0/ja/System.Linq.Expressions.xml", + "ref/netstandard1.0/ko/System.Linq.Expressions.xml", + "ref/netstandard1.0/ru/System.Linq.Expressions.xml", + "ref/netstandard1.0/zh-hans/System.Linq.Expressions.xml", + "ref/netstandard1.0/zh-hant/System.Linq.Expressions.xml", + "ref/netstandard1.3/System.Linq.Expressions.dll", + "ref/netstandard1.3/System.Linq.Expressions.xml", + "ref/netstandard1.3/de/System.Linq.Expressions.xml", + "ref/netstandard1.3/es/System.Linq.Expressions.xml", + "ref/netstandard1.3/fr/System.Linq.Expressions.xml", + "ref/netstandard1.3/it/System.Linq.Expressions.xml", + "ref/netstandard1.3/ja/System.Linq.Expressions.xml", + "ref/netstandard1.3/ko/System.Linq.Expressions.xml", + "ref/netstandard1.3/ru/System.Linq.Expressions.xml", + "ref/netstandard1.3/zh-hans/System.Linq.Expressions.xml", + "ref/netstandard1.3/zh-hant/System.Linq.Expressions.xml", + "ref/netstandard1.6/System.Linq.Expressions.dll", + "ref/netstandard1.6/System.Linq.Expressions.xml", + "ref/netstandard1.6/de/System.Linq.Expressions.xml", + "ref/netstandard1.6/es/System.Linq.Expressions.xml", + "ref/netstandard1.6/fr/System.Linq.Expressions.xml", + "ref/netstandard1.6/it/System.Linq.Expressions.xml", + "ref/netstandard1.6/ja/System.Linq.Expressions.xml", + "ref/netstandard1.6/ko/System.Linq.Expressions.xml", + "ref/netstandard1.6/ru/System.Linq.Expressions.xml", + "ref/netstandard1.6/zh-hans/System.Linq.Expressions.xml", + "ref/netstandard1.6/zh-hant/System.Linq.Expressions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Linq.Expressions.dll", + "system.linq.expressions.4.3.0.nupkg.sha512", + "system.linq.expressions.nuspec" + ] + }, + "System.Net.Http/4.3.0": { + "sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", + "type": "package", + "path": "system.net.http/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/Xamarinmac20/_._", + "lib/monoandroid10/_._", + "lib/monotouch10/_._", + "lib/net45/_._", + "lib/net46/System.Net.Http.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/Xamarinmac20/_._", + "ref/monoandroid10/_._", + "ref/monotouch10/_._", + "ref/net45/_._", + "ref/net46/System.Net.Http.dll", + "ref/net46/System.Net.Http.xml", + "ref/net46/de/System.Net.Http.xml", + "ref/net46/es/System.Net.Http.xml", + "ref/net46/fr/System.Net.Http.xml", + "ref/net46/it/System.Net.Http.xml", + "ref/net46/ja/System.Net.Http.xml", + "ref/net46/ko/System.Net.Http.xml", + "ref/net46/ru/System.Net.Http.xml", + "ref/net46/zh-hans/System.Net.Http.xml", + "ref/net46/zh-hant/System.Net.Http.xml", + "ref/netcore50/System.Net.Http.dll", + "ref/netcore50/System.Net.Http.xml", + "ref/netcore50/de/System.Net.Http.xml", + "ref/netcore50/es/System.Net.Http.xml", + "ref/netcore50/fr/System.Net.Http.xml", + "ref/netcore50/it/System.Net.Http.xml", + "ref/netcore50/ja/System.Net.Http.xml", + "ref/netcore50/ko/System.Net.Http.xml", + "ref/netcore50/ru/System.Net.Http.xml", + "ref/netcore50/zh-hans/System.Net.Http.xml", + "ref/netcore50/zh-hant/System.Net.Http.xml", + "ref/netstandard1.1/System.Net.Http.dll", + "ref/netstandard1.1/System.Net.Http.xml", + "ref/netstandard1.1/de/System.Net.Http.xml", + "ref/netstandard1.1/es/System.Net.Http.xml", + "ref/netstandard1.1/fr/System.Net.Http.xml", + "ref/netstandard1.1/it/System.Net.Http.xml", + "ref/netstandard1.1/ja/System.Net.Http.xml", + "ref/netstandard1.1/ko/System.Net.Http.xml", + "ref/netstandard1.1/ru/System.Net.Http.xml", + "ref/netstandard1.1/zh-hans/System.Net.Http.xml", + "ref/netstandard1.1/zh-hant/System.Net.Http.xml", + "ref/netstandard1.3/System.Net.Http.dll", + "ref/netstandard1.3/System.Net.Http.xml", + "ref/netstandard1.3/de/System.Net.Http.xml", + "ref/netstandard1.3/es/System.Net.Http.xml", + "ref/netstandard1.3/fr/System.Net.Http.xml", + "ref/netstandard1.3/it/System.Net.Http.xml", + "ref/netstandard1.3/ja/System.Net.Http.xml", + "ref/netstandard1.3/ko/System.Net.Http.xml", + "ref/netstandard1.3/ru/System.Net.Http.xml", + "ref/netstandard1.3/zh-hans/System.Net.Http.xml", + "ref/netstandard1.3/zh-hant/System.Net.Http.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.6/System.Net.Http.dll", + "runtimes/win/lib/net46/System.Net.Http.dll", + "runtimes/win/lib/netcore50/System.Net.Http.dll", + "runtimes/win/lib/netstandard1.3/System.Net.Http.dll", + "system.net.http.4.3.0.nupkg.sha512", + "system.net.http.nuspec" + ] + }, + "System.Net.Primitives/4.3.0": { + "sha512": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "type": "package", + "path": "system.net.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Net.Primitives.dll", + "ref/netcore50/System.Net.Primitives.xml", + "ref/netcore50/de/System.Net.Primitives.xml", + "ref/netcore50/es/System.Net.Primitives.xml", + "ref/netcore50/fr/System.Net.Primitives.xml", + "ref/netcore50/it/System.Net.Primitives.xml", + "ref/netcore50/ja/System.Net.Primitives.xml", + "ref/netcore50/ko/System.Net.Primitives.xml", + "ref/netcore50/ru/System.Net.Primitives.xml", + "ref/netcore50/zh-hans/System.Net.Primitives.xml", + "ref/netcore50/zh-hant/System.Net.Primitives.xml", + "ref/netstandard1.0/System.Net.Primitives.dll", + "ref/netstandard1.0/System.Net.Primitives.xml", + "ref/netstandard1.0/de/System.Net.Primitives.xml", + "ref/netstandard1.0/es/System.Net.Primitives.xml", + "ref/netstandard1.0/fr/System.Net.Primitives.xml", + "ref/netstandard1.0/it/System.Net.Primitives.xml", + "ref/netstandard1.0/ja/System.Net.Primitives.xml", + "ref/netstandard1.0/ko/System.Net.Primitives.xml", + "ref/netstandard1.0/ru/System.Net.Primitives.xml", + "ref/netstandard1.0/zh-hans/System.Net.Primitives.xml", + "ref/netstandard1.0/zh-hant/System.Net.Primitives.xml", + "ref/netstandard1.1/System.Net.Primitives.dll", + "ref/netstandard1.1/System.Net.Primitives.xml", + "ref/netstandard1.1/de/System.Net.Primitives.xml", + "ref/netstandard1.1/es/System.Net.Primitives.xml", + "ref/netstandard1.1/fr/System.Net.Primitives.xml", + "ref/netstandard1.1/it/System.Net.Primitives.xml", + "ref/netstandard1.1/ja/System.Net.Primitives.xml", + "ref/netstandard1.1/ko/System.Net.Primitives.xml", + "ref/netstandard1.1/ru/System.Net.Primitives.xml", + "ref/netstandard1.1/zh-hans/System.Net.Primitives.xml", + "ref/netstandard1.1/zh-hant/System.Net.Primitives.xml", + "ref/netstandard1.3/System.Net.Primitives.dll", + "ref/netstandard1.3/System.Net.Primitives.xml", + "ref/netstandard1.3/de/System.Net.Primitives.xml", + "ref/netstandard1.3/es/System.Net.Primitives.xml", + "ref/netstandard1.3/fr/System.Net.Primitives.xml", + "ref/netstandard1.3/it/System.Net.Primitives.xml", + "ref/netstandard1.3/ja/System.Net.Primitives.xml", + "ref/netstandard1.3/ko/System.Net.Primitives.xml", + "ref/netstandard1.3/ru/System.Net.Primitives.xml", + "ref/netstandard1.3/zh-hans/System.Net.Primitives.xml", + "ref/netstandard1.3/zh-hant/System.Net.Primitives.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.net.primitives.4.3.0.nupkg.sha512", + "system.net.primitives.nuspec" + ] + }, + "System.Net.Sockets/4.3.0": { + "sha512": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", + "type": "package", + "path": "system.net.sockets/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Net.Sockets.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Net.Sockets.dll", + "ref/netstandard1.3/System.Net.Sockets.dll", + "ref/netstandard1.3/System.Net.Sockets.xml", + "ref/netstandard1.3/de/System.Net.Sockets.xml", + "ref/netstandard1.3/es/System.Net.Sockets.xml", + "ref/netstandard1.3/fr/System.Net.Sockets.xml", + "ref/netstandard1.3/it/System.Net.Sockets.xml", + "ref/netstandard1.3/ja/System.Net.Sockets.xml", + "ref/netstandard1.3/ko/System.Net.Sockets.xml", + "ref/netstandard1.3/ru/System.Net.Sockets.xml", + "ref/netstandard1.3/zh-hans/System.Net.Sockets.xml", + "ref/netstandard1.3/zh-hant/System.Net.Sockets.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.net.sockets.4.3.0.nupkg.sha512", + "system.net.sockets.nuspec" + ] + }, + "System.Net.WebSockets.WebSocketProtocol/5.1.0": { + "sha512": "cVTT/Zw4JuUeX8H0tdWii0OMHsA5MY2PaFYOq/Hstw0jk479jZ+f8baCicWFNzJlCPWAe0uoNCELoB5eNmaMqA==", + "type": "package", + "path": "system.net.websockets.websocketprotocol/5.1.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "buildTransitive/net461/System.Net.WebSockets.WebSocketProtocol.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Net.WebSockets.WebSocketProtocol.targets", + "lib/net462/System.Net.WebSockets.WebSocketProtocol.dll", + "lib/net462/System.Net.WebSockets.WebSocketProtocol.xml", + "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.dll", + "lib/net6.0/System.Net.WebSockets.WebSocketProtocol.xml", + "lib/netstandard2.0/System.Net.WebSockets.WebSocketProtocol.dll", + "lib/netstandard2.0/System.Net.WebSockets.WebSocketProtocol.xml", + "system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512", + "system.net.websockets.websocketprotocol.nuspec" + ] + }, + "System.ObjectModel/4.3.0": { + "sha512": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "type": "package", + "path": "system.objectmodel/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.ObjectModel.dll", + "lib/netstandard1.3/System.ObjectModel.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.ObjectModel.dll", + "ref/netcore50/System.ObjectModel.xml", + "ref/netcore50/de/System.ObjectModel.xml", + "ref/netcore50/es/System.ObjectModel.xml", + "ref/netcore50/fr/System.ObjectModel.xml", + "ref/netcore50/it/System.ObjectModel.xml", + "ref/netcore50/ja/System.ObjectModel.xml", + "ref/netcore50/ko/System.ObjectModel.xml", + "ref/netcore50/ru/System.ObjectModel.xml", + "ref/netcore50/zh-hans/System.ObjectModel.xml", + "ref/netcore50/zh-hant/System.ObjectModel.xml", + "ref/netstandard1.0/System.ObjectModel.dll", + "ref/netstandard1.0/System.ObjectModel.xml", + "ref/netstandard1.0/de/System.ObjectModel.xml", + "ref/netstandard1.0/es/System.ObjectModel.xml", + "ref/netstandard1.0/fr/System.ObjectModel.xml", + "ref/netstandard1.0/it/System.ObjectModel.xml", + "ref/netstandard1.0/ja/System.ObjectModel.xml", + "ref/netstandard1.0/ko/System.ObjectModel.xml", + "ref/netstandard1.0/ru/System.ObjectModel.xml", + "ref/netstandard1.0/zh-hans/System.ObjectModel.xml", + "ref/netstandard1.0/zh-hant/System.ObjectModel.xml", + "ref/netstandard1.3/System.ObjectModel.dll", + "ref/netstandard1.3/System.ObjectModel.xml", + "ref/netstandard1.3/de/System.ObjectModel.xml", + "ref/netstandard1.3/es/System.ObjectModel.xml", + "ref/netstandard1.3/fr/System.ObjectModel.xml", + "ref/netstandard1.3/it/System.ObjectModel.xml", + "ref/netstandard1.3/ja/System.ObjectModel.xml", + "ref/netstandard1.3/ko/System.ObjectModel.xml", + "ref/netstandard1.3/ru/System.ObjectModel.xml", + "ref/netstandard1.3/zh-hans/System.ObjectModel.xml", + "ref/netstandard1.3/zh-hant/System.ObjectModel.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.objectmodel.4.3.0.nupkg.sha512", + "system.objectmodel.nuspec" + ] + }, + "System.Reflection/4.3.0": { + "sha512": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "type": "package", + "path": "system.reflection/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Reflection.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Reflection.dll", + "ref/netcore50/System.Reflection.dll", + "ref/netcore50/System.Reflection.xml", + "ref/netcore50/de/System.Reflection.xml", + "ref/netcore50/es/System.Reflection.xml", + "ref/netcore50/fr/System.Reflection.xml", + "ref/netcore50/it/System.Reflection.xml", + "ref/netcore50/ja/System.Reflection.xml", + "ref/netcore50/ko/System.Reflection.xml", + "ref/netcore50/ru/System.Reflection.xml", + "ref/netcore50/zh-hans/System.Reflection.xml", + "ref/netcore50/zh-hant/System.Reflection.xml", + "ref/netstandard1.0/System.Reflection.dll", + "ref/netstandard1.0/System.Reflection.xml", + "ref/netstandard1.0/de/System.Reflection.xml", + "ref/netstandard1.0/es/System.Reflection.xml", + "ref/netstandard1.0/fr/System.Reflection.xml", + "ref/netstandard1.0/it/System.Reflection.xml", + "ref/netstandard1.0/ja/System.Reflection.xml", + "ref/netstandard1.0/ko/System.Reflection.xml", + "ref/netstandard1.0/ru/System.Reflection.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.xml", + "ref/netstandard1.3/System.Reflection.dll", + "ref/netstandard1.3/System.Reflection.xml", + "ref/netstandard1.3/de/System.Reflection.xml", + "ref/netstandard1.3/es/System.Reflection.xml", + "ref/netstandard1.3/fr/System.Reflection.xml", + "ref/netstandard1.3/it/System.Reflection.xml", + "ref/netstandard1.3/ja/System.Reflection.xml", + "ref/netstandard1.3/ko/System.Reflection.xml", + "ref/netstandard1.3/ru/System.Reflection.xml", + "ref/netstandard1.3/zh-hans/System.Reflection.xml", + "ref/netstandard1.3/zh-hant/System.Reflection.xml", + "ref/netstandard1.5/System.Reflection.dll", + "ref/netstandard1.5/System.Reflection.xml", + "ref/netstandard1.5/de/System.Reflection.xml", + "ref/netstandard1.5/es/System.Reflection.xml", + "ref/netstandard1.5/fr/System.Reflection.xml", + "ref/netstandard1.5/it/System.Reflection.xml", + "ref/netstandard1.5/ja/System.Reflection.xml", + "ref/netstandard1.5/ko/System.Reflection.xml", + "ref/netstandard1.5/ru/System.Reflection.xml", + "ref/netstandard1.5/zh-hans/System.Reflection.xml", + "ref/netstandard1.5/zh-hant/System.Reflection.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.reflection.4.3.0.nupkg.sha512", + "system.reflection.nuspec" + ] + }, + "System.Reflection.Emit/4.7.0": { + "sha512": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", + "type": "package", + "path": "system.reflection.emit/4.7.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.dll", + "lib/netcoreapp2.0/_._", + "lib/netstandard1.1/System.Reflection.Emit.dll", + "lib/netstandard1.1/System.Reflection.Emit.xml", + "lib/netstandard1.3/System.Reflection.Emit.dll", + "lib/netstandard2.0/System.Reflection.Emit.dll", + "lib/netstandard2.0/System.Reflection.Emit.xml", + "lib/netstandard2.1/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcoreapp2.0/_._", + "ref/netstandard1.1/System.Reflection.Emit.dll", + "ref/netstandard1.1/System.Reflection.Emit.xml", + "ref/netstandard1.1/de/System.Reflection.Emit.xml", + "ref/netstandard1.1/es/System.Reflection.Emit.xml", + "ref/netstandard1.1/fr/System.Reflection.Emit.xml", + "ref/netstandard1.1/it/System.Reflection.Emit.xml", + "ref/netstandard1.1/ja/System.Reflection.Emit.xml", + "ref/netstandard1.1/ko/System.Reflection.Emit.xml", + "ref/netstandard1.1/ru/System.Reflection.Emit.xml", + "ref/netstandard1.1/zh-hans/System.Reflection.Emit.xml", + "ref/netstandard1.1/zh-hant/System.Reflection.Emit.xml", + "ref/netstandard2.0/System.Reflection.Emit.dll", + "ref/netstandard2.0/System.Reflection.Emit.xml", + "ref/netstandard2.1/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Reflection.Emit.dll", + "runtimes/aot/lib/netcore50/System.Reflection.Emit.xml", + "system.reflection.emit.4.7.0.nupkg.sha512", + "system.reflection.emit.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "sha512": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "type": "package", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll", + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll", + "lib/portable-net45+wp8/_._", + "lib/wp80/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.dll", + "ref/netstandard1.0/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/de/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/es/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/fr/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/it/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/ja/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/ko/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/ru/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Emit.ILGeneration.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Emit.ILGeneration.xml", + "ref/portable-net45+wp8/_._", + "ref/wp80/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/_._", + "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", + "system.reflection.emit.ilgeneration.nuspec" + ] + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "sha512": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "type": "package", + "path": "system.reflection.emit.lightweight/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.Lightweight.dll", + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll", + "lib/portable-net45+wp8/_._", + "lib/wp80/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netstandard1.0/System.Reflection.Emit.Lightweight.dll", + "ref/netstandard1.0/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/de/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/es/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/fr/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/it/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/ja/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/ko/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/ru/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Emit.Lightweight.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Emit.Lightweight.xml", + "ref/portable-net45+wp8/_._", + "ref/wp80/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/_._", + "system.reflection.emit.lightweight.4.3.0.nupkg.sha512", + "system.reflection.emit.lightweight.nuspec" + ] + }, + "System.Reflection.Extensions/4.3.0": { + "sha512": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "type": "package", + "path": "system.reflection.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Extensions.dll", + "ref/netcore50/System.Reflection.Extensions.xml", + "ref/netcore50/de/System.Reflection.Extensions.xml", + "ref/netcore50/es/System.Reflection.Extensions.xml", + "ref/netcore50/fr/System.Reflection.Extensions.xml", + "ref/netcore50/it/System.Reflection.Extensions.xml", + "ref/netcore50/ja/System.Reflection.Extensions.xml", + "ref/netcore50/ko/System.Reflection.Extensions.xml", + "ref/netcore50/ru/System.Reflection.Extensions.xml", + "ref/netcore50/zh-hans/System.Reflection.Extensions.xml", + "ref/netcore50/zh-hant/System.Reflection.Extensions.xml", + "ref/netstandard1.0/System.Reflection.Extensions.dll", + "ref/netstandard1.0/System.Reflection.Extensions.xml", + "ref/netstandard1.0/de/System.Reflection.Extensions.xml", + "ref/netstandard1.0/es/System.Reflection.Extensions.xml", + "ref/netstandard1.0/fr/System.Reflection.Extensions.xml", + "ref/netstandard1.0/it/System.Reflection.Extensions.xml", + "ref/netstandard1.0/ja/System.Reflection.Extensions.xml", + "ref/netstandard1.0/ko/System.Reflection.Extensions.xml", + "ref/netstandard1.0/ru/System.Reflection.Extensions.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Extensions.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Extensions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.reflection.extensions.4.3.0.nupkg.sha512", + "system.reflection.extensions.nuspec" + ] + }, + "System.Reflection.Metadata/1.6.0": { + "sha512": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", + "type": "package", + "path": "system.reflection.metadata/1.6.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/netstandard1.1/System.Reflection.Metadata.dll", + "lib/netstandard1.1/System.Reflection.Metadata.xml", + "lib/netstandard2.0/System.Reflection.Metadata.dll", + "lib/netstandard2.0/System.Reflection.Metadata.xml", + "lib/portable-net45+win8/System.Reflection.Metadata.dll", + "lib/portable-net45+win8/System.Reflection.Metadata.xml", + "system.reflection.metadata.1.6.0.nupkg.sha512", + "system.reflection.metadata.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "System.Reflection.Primitives/4.3.0": { + "sha512": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "type": "package", + "path": "system.reflection.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Primitives.dll", + "ref/netcore50/System.Reflection.Primitives.xml", + "ref/netcore50/de/System.Reflection.Primitives.xml", + "ref/netcore50/es/System.Reflection.Primitives.xml", + "ref/netcore50/fr/System.Reflection.Primitives.xml", + "ref/netcore50/it/System.Reflection.Primitives.xml", + "ref/netcore50/ja/System.Reflection.Primitives.xml", + "ref/netcore50/ko/System.Reflection.Primitives.xml", + "ref/netcore50/ru/System.Reflection.Primitives.xml", + "ref/netcore50/zh-hans/System.Reflection.Primitives.xml", + "ref/netcore50/zh-hant/System.Reflection.Primitives.xml", + "ref/netstandard1.0/System.Reflection.Primitives.dll", + "ref/netstandard1.0/System.Reflection.Primitives.xml", + "ref/netstandard1.0/de/System.Reflection.Primitives.xml", + "ref/netstandard1.0/es/System.Reflection.Primitives.xml", + "ref/netstandard1.0/fr/System.Reflection.Primitives.xml", + "ref/netstandard1.0/it/System.Reflection.Primitives.xml", + "ref/netstandard1.0/ja/System.Reflection.Primitives.xml", + "ref/netstandard1.0/ko/System.Reflection.Primitives.xml", + "ref/netstandard1.0/ru/System.Reflection.Primitives.xml", + "ref/netstandard1.0/zh-hans/System.Reflection.Primitives.xml", + "ref/netstandard1.0/zh-hant/System.Reflection.Primitives.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.reflection.primitives.4.3.0.nupkg.sha512", + "system.reflection.primitives.nuspec" + ] + }, + "System.Reflection.TypeExtensions/4.3.0": { + "sha512": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "type": "package", + "path": "system.reflection.typeextensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Reflection.TypeExtensions.dll", + "lib/net462/System.Reflection.TypeExtensions.dll", + "lib/netcore50/System.Reflection.TypeExtensions.dll", + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Reflection.TypeExtensions.dll", + "ref/net462/System.Reflection.TypeExtensions.dll", + "ref/netstandard1.3/System.Reflection.TypeExtensions.dll", + "ref/netstandard1.3/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/de/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/es/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/fr/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/it/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/ja/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/ko/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/ru/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/zh-hans/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.3/zh-hant/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/System.Reflection.TypeExtensions.dll", + "ref/netstandard1.5/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/de/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/es/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/fr/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/it/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/ja/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/ko/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/ru/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/zh-hans/System.Reflection.TypeExtensions.xml", + "ref/netstandard1.5/zh-hant/System.Reflection.TypeExtensions.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Reflection.TypeExtensions.dll", + "system.reflection.typeextensions.4.3.0.nupkg.sha512", + "system.reflection.typeextensions.nuspec" + ] + }, + "System.Resources.ResourceManager/4.3.0": { + "sha512": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "type": "package", + "path": "system.resources.resourcemanager/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Resources.ResourceManager.dll", + "ref/netcore50/System.Resources.ResourceManager.xml", + "ref/netcore50/de/System.Resources.ResourceManager.xml", + "ref/netcore50/es/System.Resources.ResourceManager.xml", + "ref/netcore50/fr/System.Resources.ResourceManager.xml", + "ref/netcore50/it/System.Resources.ResourceManager.xml", + "ref/netcore50/ja/System.Resources.ResourceManager.xml", + "ref/netcore50/ko/System.Resources.ResourceManager.xml", + "ref/netcore50/ru/System.Resources.ResourceManager.xml", + "ref/netcore50/zh-hans/System.Resources.ResourceManager.xml", + "ref/netcore50/zh-hant/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/System.Resources.ResourceManager.dll", + "ref/netstandard1.0/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/de/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/es/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/fr/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/it/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/ja/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/ko/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/ru/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/zh-hans/System.Resources.ResourceManager.xml", + "ref/netstandard1.0/zh-hant/System.Resources.ResourceManager.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.resources.resourcemanager.4.3.0.nupkg.sha512", + "system.resources.resourcemanager.nuspec" + ] + }, + "System.Runtime/4.3.0": { + "sha512": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "type": "package", + "path": "system.runtime/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Runtime.dll", + "lib/portable-net45+win8+wp80+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Runtime.dll", + "ref/netcore50/System.Runtime.dll", + "ref/netcore50/System.Runtime.xml", + "ref/netcore50/de/System.Runtime.xml", + "ref/netcore50/es/System.Runtime.xml", + "ref/netcore50/fr/System.Runtime.xml", + "ref/netcore50/it/System.Runtime.xml", + "ref/netcore50/ja/System.Runtime.xml", + "ref/netcore50/ko/System.Runtime.xml", + "ref/netcore50/ru/System.Runtime.xml", + "ref/netcore50/zh-hans/System.Runtime.xml", + "ref/netcore50/zh-hant/System.Runtime.xml", + "ref/netstandard1.0/System.Runtime.dll", + "ref/netstandard1.0/System.Runtime.xml", + "ref/netstandard1.0/de/System.Runtime.xml", + "ref/netstandard1.0/es/System.Runtime.xml", + "ref/netstandard1.0/fr/System.Runtime.xml", + "ref/netstandard1.0/it/System.Runtime.xml", + "ref/netstandard1.0/ja/System.Runtime.xml", + "ref/netstandard1.0/ko/System.Runtime.xml", + "ref/netstandard1.0/ru/System.Runtime.xml", + "ref/netstandard1.0/zh-hans/System.Runtime.xml", + "ref/netstandard1.0/zh-hant/System.Runtime.xml", + "ref/netstandard1.2/System.Runtime.dll", + "ref/netstandard1.2/System.Runtime.xml", + "ref/netstandard1.2/de/System.Runtime.xml", + "ref/netstandard1.2/es/System.Runtime.xml", + "ref/netstandard1.2/fr/System.Runtime.xml", + "ref/netstandard1.2/it/System.Runtime.xml", + "ref/netstandard1.2/ja/System.Runtime.xml", + "ref/netstandard1.2/ko/System.Runtime.xml", + "ref/netstandard1.2/ru/System.Runtime.xml", + "ref/netstandard1.2/zh-hans/System.Runtime.xml", + "ref/netstandard1.2/zh-hant/System.Runtime.xml", + "ref/netstandard1.3/System.Runtime.dll", + "ref/netstandard1.3/System.Runtime.xml", + "ref/netstandard1.3/de/System.Runtime.xml", + "ref/netstandard1.3/es/System.Runtime.xml", + "ref/netstandard1.3/fr/System.Runtime.xml", + "ref/netstandard1.3/it/System.Runtime.xml", + "ref/netstandard1.3/ja/System.Runtime.xml", + "ref/netstandard1.3/ko/System.Runtime.xml", + "ref/netstandard1.3/ru/System.Runtime.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.xml", + "ref/netstandard1.5/System.Runtime.dll", + "ref/netstandard1.5/System.Runtime.xml", + "ref/netstandard1.5/de/System.Runtime.xml", + "ref/netstandard1.5/es/System.Runtime.xml", + "ref/netstandard1.5/fr/System.Runtime.xml", + "ref/netstandard1.5/it/System.Runtime.xml", + "ref/netstandard1.5/ja/System.Runtime.xml", + "ref/netstandard1.5/ko/System.Runtime.xml", + "ref/netstandard1.5/ru/System.Runtime.xml", + "ref/netstandard1.5/zh-hans/System.Runtime.xml", + "ref/netstandard1.5/zh-hant/System.Runtime.xml", + "ref/portable-net45+win8+wp80+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.4.3.0.nupkg.sha512", + "system.runtime.nuspec" + ] + }, + "System.Runtime.Extensions/4.3.0": { + "sha512": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "type": "package", + "path": "system.runtime.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Runtime.Extensions.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Runtime.Extensions.dll", + "ref/netcore50/System.Runtime.Extensions.dll", + "ref/netcore50/System.Runtime.Extensions.xml", + "ref/netcore50/de/System.Runtime.Extensions.xml", + "ref/netcore50/es/System.Runtime.Extensions.xml", + "ref/netcore50/fr/System.Runtime.Extensions.xml", + "ref/netcore50/it/System.Runtime.Extensions.xml", + "ref/netcore50/ja/System.Runtime.Extensions.xml", + "ref/netcore50/ko/System.Runtime.Extensions.xml", + "ref/netcore50/ru/System.Runtime.Extensions.xml", + "ref/netcore50/zh-hans/System.Runtime.Extensions.xml", + "ref/netcore50/zh-hant/System.Runtime.Extensions.xml", + "ref/netstandard1.0/System.Runtime.Extensions.dll", + "ref/netstandard1.0/System.Runtime.Extensions.xml", + "ref/netstandard1.0/de/System.Runtime.Extensions.xml", + "ref/netstandard1.0/es/System.Runtime.Extensions.xml", + "ref/netstandard1.0/fr/System.Runtime.Extensions.xml", + "ref/netstandard1.0/it/System.Runtime.Extensions.xml", + "ref/netstandard1.0/ja/System.Runtime.Extensions.xml", + "ref/netstandard1.0/ko/System.Runtime.Extensions.xml", + "ref/netstandard1.0/ru/System.Runtime.Extensions.xml", + "ref/netstandard1.0/zh-hans/System.Runtime.Extensions.xml", + "ref/netstandard1.0/zh-hant/System.Runtime.Extensions.xml", + "ref/netstandard1.3/System.Runtime.Extensions.dll", + "ref/netstandard1.3/System.Runtime.Extensions.xml", + "ref/netstandard1.3/de/System.Runtime.Extensions.xml", + "ref/netstandard1.3/es/System.Runtime.Extensions.xml", + "ref/netstandard1.3/fr/System.Runtime.Extensions.xml", + "ref/netstandard1.3/it/System.Runtime.Extensions.xml", + "ref/netstandard1.3/ja/System.Runtime.Extensions.xml", + "ref/netstandard1.3/ko/System.Runtime.Extensions.xml", + "ref/netstandard1.3/ru/System.Runtime.Extensions.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.Extensions.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.Extensions.xml", + "ref/netstandard1.5/System.Runtime.Extensions.dll", + "ref/netstandard1.5/System.Runtime.Extensions.xml", + "ref/netstandard1.5/de/System.Runtime.Extensions.xml", + "ref/netstandard1.5/es/System.Runtime.Extensions.xml", + "ref/netstandard1.5/fr/System.Runtime.Extensions.xml", + "ref/netstandard1.5/it/System.Runtime.Extensions.xml", + "ref/netstandard1.5/ja/System.Runtime.Extensions.xml", + "ref/netstandard1.5/ko/System.Runtime.Extensions.xml", + "ref/netstandard1.5/ru/System.Runtime.Extensions.xml", + "ref/netstandard1.5/zh-hans/System.Runtime.Extensions.xml", + "ref/netstandard1.5/zh-hant/System.Runtime.Extensions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.extensions.4.3.0.nupkg.sha512", + "system.runtime.extensions.nuspec" + ] + }, + "System.Runtime.Handles/4.3.0": { + "sha512": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "type": "package", + "path": "system.runtime.handles/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/_._", + "ref/netstandard1.3/System.Runtime.Handles.dll", + "ref/netstandard1.3/System.Runtime.Handles.xml", + "ref/netstandard1.3/de/System.Runtime.Handles.xml", + "ref/netstandard1.3/es/System.Runtime.Handles.xml", + "ref/netstandard1.3/fr/System.Runtime.Handles.xml", + "ref/netstandard1.3/it/System.Runtime.Handles.xml", + "ref/netstandard1.3/ja/System.Runtime.Handles.xml", + "ref/netstandard1.3/ko/System.Runtime.Handles.xml", + "ref/netstandard1.3/ru/System.Runtime.Handles.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.Handles.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.Handles.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.handles.4.3.0.nupkg.sha512", + "system.runtime.handles.nuspec" + ] + }, + "System.Runtime.InteropServices/4.3.0": { + "sha512": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "type": "package", + "path": "system.runtime.interopservices/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net462/System.Runtime.InteropServices.dll", + "lib/net463/System.Runtime.InteropServices.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net462/System.Runtime.InteropServices.dll", + "ref/net463/System.Runtime.InteropServices.dll", + "ref/netcore50/System.Runtime.InteropServices.dll", + "ref/netcore50/System.Runtime.InteropServices.xml", + "ref/netcore50/de/System.Runtime.InteropServices.xml", + "ref/netcore50/es/System.Runtime.InteropServices.xml", + "ref/netcore50/fr/System.Runtime.InteropServices.xml", + "ref/netcore50/it/System.Runtime.InteropServices.xml", + "ref/netcore50/ja/System.Runtime.InteropServices.xml", + "ref/netcore50/ko/System.Runtime.InteropServices.xml", + "ref/netcore50/ru/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hans/System.Runtime.InteropServices.xml", + "ref/netcore50/zh-hant/System.Runtime.InteropServices.xml", + "ref/netcoreapp1.1/System.Runtime.InteropServices.dll", + "ref/netstandard1.1/System.Runtime.InteropServices.dll", + "ref/netstandard1.1/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.1/zh-hant/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/System.Runtime.InteropServices.dll", + "ref/netstandard1.2/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.2/zh-hant/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/System.Runtime.InteropServices.dll", + "ref/netstandard1.3/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.3/zh-hant/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/System.Runtime.InteropServices.dll", + "ref/netstandard1.5/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/de/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/es/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/fr/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/it/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/ja/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/ko/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/ru/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/zh-hans/System.Runtime.InteropServices.xml", + "ref/netstandard1.5/zh-hant/System.Runtime.InteropServices.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.interopservices.4.3.0.nupkg.sha512", + "system.runtime.interopservices.nuspec" + ] + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "sha512": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", + "type": "package", + "path": "system.runtime.interopservices.runtimeinformation/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll", + "runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll", + "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512", + "system.runtime.interopservices.runtimeinformation.nuspec" + ] + }, + "System.Runtime.Numerics/4.3.0": { + "sha512": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "type": "package", + "path": "system.runtime.numerics/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Runtime.Numerics.dll", + "lib/netstandard1.3/System.Runtime.Numerics.dll", + "lib/portable-net45+win8+wpa81/_._", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Runtime.Numerics.dll", + "ref/netcore50/System.Runtime.Numerics.xml", + "ref/netcore50/de/System.Runtime.Numerics.xml", + "ref/netcore50/es/System.Runtime.Numerics.xml", + "ref/netcore50/fr/System.Runtime.Numerics.xml", + "ref/netcore50/it/System.Runtime.Numerics.xml", + "ref/netcore50/ja/System.Runtime.Numerics.xml", + "ref/netcore50/ko/System.Runtime.Numerics.xml", + "ref/netcore50/ru/System.Runtime.Numerics.xml", + "ref/netcore50/zh-hans/System.Runtime.Numerics.xml", + "ref/netcore50/zh-hant/System.Runtime.Numerics.xml", + "ref/netstandard1.1/System.Runtime.Numerics.dll", + "ref/netstandard1.1/System.Runtime.Numerics.xml", + "ref/netstandard1.1/de/System.Runtime.Numerics.xml", + "ref/netstandard1.1/es/System.Runtime.Numerics.xml", + "ref/netstandard1.1/fr/System.Runtime.Numerics.xml", + "ref/netstandard1.1/it/System.Runtime.Numerics.xml", + "ref/netstandard1.1/ja/System.Runtime.Numerics.xml", + "ref/netstandard1.1/ko/System.Runtime.Numerics.xml", + "ref/netstandard1.1/ru/System.Runtime.Numerics.xml", + "ref/netstandard1.1/zh-hans/System.Runtime.Numerics.xml", + "ref/netstandard1.1/zh-hant/System.Runtime.Numerics.xml", + "ref/portable-net45+win8+wpa81/_._", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.runtime.numerics.4.3.0.nupkg.sha512", + "system.runtime.numerics.nuspec" + ] + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "sha512": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "type": "package", + "path": "system.security.cryptography.algorithms/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Algorithms.dll", + "lib/net461/System.Security.Cryptography.Algorithms.dll", + "lib/net463/System.Security.Cryptography.Algorithms.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Algorithms.dll", + "ref/net461/System.Security.Cryptography.Algorithms.dll", + "ref/net463/System.Security.Cryptography.Algorithms.dll", + "ref/netstandard1.3/System.Security.Cryptography.Algorithms.dll", + "ref/netstandard1.4/System.Security.Cryptography.Algorithms.dll", + "ref/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/osx/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/net463/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/netcore50/System.Security.Cryptography.Algorithms.dll", + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll", + "system.security.cryptography.algorithms.4.3.0.nupkg.sha512", + "system.security.cryptography.algorithms.nuspec" + ] + }, + "System.Security.Cryptography.Cng/4.3.0": { + "sha512": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "type": "package", + "path": "system.security.cryptography.cng/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/net46/System.Security.Cryptography.Cng.dll", + "lib/net461/System.Security.Cryptography.Cng.dll", + "lib/net463/System.Security.Cryptography.Cng.dll", + "ref/net46/System.Security.Cryptography.Cng.dll", + "ref/net461/System.Security.Cryptography.Cng.dll", + "ref/net463/System.Security.Cryptography.Cng.dll", + "ref/netstandard1.3/System.Security.Cryptography.Cng.dll", + "ref/netstandard1.4/System.Security.Cryptography.Cng.dll", + "ref/netstandard1.6/System.Security.Cryptography.Cng.dll", + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/net463/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll", + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll", + "system.security.cryptography.cng.4.3.0.nupkg.sha512", + "system.security.cryptography.cng.nuspec" + ] + }, + "System.Security.Cryptography.Csp/4.3.0": { + "sha512": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "type": "package", + "path": "system.security.cryptography.csp/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Csp.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Csp.dll", + "ref/netstandard1.3/System.Security.Cryptography.Csp.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Csp.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.Csp.dll", + "runtimes/win/lib/netcore50/_._", + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Csp.dll", + "system.security.cryptography.csp.4.3.0.nupkg.sha512", + "system.security.cryptography.csp.nuspec" + ] + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "sha512": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "type": "package", + "path": "system.security.cryptography.encoding/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Encoding.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Encoding.dll", + "ref/netstandard1.3/System.Security.Cryptography.Encoding.dll", + "ref/netstandard1.3/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/de/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/es/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/fr/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/it/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/ja/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/ko/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/ru/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/zh-hans/System.Security.Cryptography.Encoding.xml", + "ref/netstandard1.3/zh-hant/System.Security.Cryptography.Encoding.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.Encoding.dll", + "runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll", + "system.security.cryptography.encoding.4.3.0.nupkg.sha512", + "system.security.cryptography.encoding.nuspec" + ] + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "sha512": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "type": "package", + "path": "system.security.cryptography.openssl/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", + "ref/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll", + "system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "system.security.cryptography.openssl.nuspec" + ] + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "sha512": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "type": "package", + "path": "system.security.cryptography.primitives/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.Primitives.dll", + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.Primitives.dll", + "ref/netstandard1.3/System.Security.Cryptography.Primitives.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.security.cryptography.primitives.4.3.0.nupkg.sha512", + "system.security.cryptography.primitives.nuspec" + ] + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "sha512": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "type": "package", + "path": "system.security.cryptography.x509certificates/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Security.Cryptography.X509Certificates.dll", + "lib/net461/System.Security.Cryptography.X509Certificates.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net46/System.Security.Cryptography.X509Certificates.dll", + "ref/net461/System.Security.Cryptography.X509Certificates.dll", + "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.dll", + "ref/netstandard1.3/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/de/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/es/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/fr/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/it/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/ja/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/ko/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/ru/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/zh-hans/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.3/zh-hant/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.dll", + "ref/netstandard1.4/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/de/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/es/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/fr/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/it/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/ja/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/ko/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/ru/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/zh-hans/System.Security.Cryptography.X509Certificates.xml", + "ref/netstandard1.4/zh-hant/System.Security.Cryptography.X509Certificates.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/net46/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/net461/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/netcore50/System.Security.Cryptography.X509Certificates.dll", + "runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll", + "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512", + "system.security.cryptography.x509certificates.nuspec" + ] + }, + "System.Text.Encoding/4.3.0": { + "sha512": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "type": "package", + "path": "system.text.encoding/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Text.Encoding.dll", + "ref/netcore50/System.Text.Encoding.xml", + "ref/netcore50/de/System.Text.Encoding.xml", + "ref/netcore50/es/System.Text.Encoding.xml", + "ref/netcore50/fr/System.Text.Encoding.xml", + "ref/netcore50/it/System.Text.Encoding.xml", + "ref/netcore50/ja/System.Text.Encoding.xml", + "ref/netcore50/ko/System.Text.Encoding.xml", + "ref/netcore50/ru/System.Text.Encoding.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.xml", + "ref/netstandard1.0/System.Text.Encoding.dll", + "ref/netstandard1.0/System.Text.Encoding.xml", + "ref/netstandard1.0/de/System.Text.Encoding.xml", + "ref/netstandard1.0/es/System.Text.Encoding.xml", + "ref/netstandard1.0/fr/System.Text.Encoding.xml", + "ref/netstandard1.0/it/System.Text.Encoding.xml", + "ref/netstandard1.0/ja/System.Text.Encoding.xml", + "ref/netstandard1.0/ko/System.Text.Encoding.xml", + "ref/netstandard1.0/ru/System.Text.Encoding.xml", + "ref/netstandard1.0/zh-hans/System.Text.Encoding.xml", + "ref/netstandard1.0/zh-hant/System.Text.Encoding.xml", + "ref/netstandard1.3/System.Text.Encoding.dll", + "ref/netstandard1.3/System.Text.Encoding.xml", + "ref/netstandard1.3/de/System.Text.Encoding.xml", + "ref/netstandard1.3/es/System.Text.Encoding.xml", + "ref/netstandard1.3/fr/System.Text.Encoding.xml", + "ref/netstandard1.3/it/System.Text.Encoding.xml", + "ref/netstandard1.3/ja/System.Text.Encoding.xml", + "ref/netstandard1.3/ko/System.Text.Encoding.xml", + "ref/netstandard1.3/ru/System.Text.Encoding.xml", + "ref/netstandard1.3/zh-hans/System.Text.Encoding.xml", + "ref/netstandard1.3/zh-hant/System.Text.Encoding.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.text.encoding.4.3.0.nupkg.sha512", + "system.text.encoding.nuspec" + ] + }, + "System.Text.Encoding.Extensions/4.3.0": { + "sha512": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "type": "package", + "path": "system.text.encoding.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Text.Encoding.Extensions.dll", + "ref/netcore50/System.Text.Encoding.Extensions.xml", + "ref/netcore50/de/System.Text.Encoding.Extensions.xml", + "ref/netcore50/es/System.Text.Encoding.Extensions.xml", + "ref/netcore50/fr/System.Text.Encoding.Extensions.xml", + "ref/netcore50/it/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ja/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ko/System.Text.Encoding.Extensions.xml", + "ref/netcore50/ru/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netcore50/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/System.Text.Encoding.Extensions.dll", + "ref/netstandard1.0/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/de/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/es/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/fr/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/it/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/ja/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/ko/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/ru/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.0/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/System.Text.Encoding.Extensions.dll", + "ref/netstandard1.3/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/de/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/es/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/fr/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/it/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/ja/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/ko/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/ru/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/netstandard1.3/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.text.encoding.extensions.4.3.0.nupkg.sha512", + "system.text.encoding.extensions.nuspec" + ] + }, + "System.Text.Encodings.Web/8.0.0": { + "sha512": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", + "type": "package", + "path": "system.text.encodings.web/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Text.Encodings.Web.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets", + "lib/net462/System.Text.Encodings.Web.dll", + "lib/net462/System.Text.Encodings.Web.xml", + "lib/net6.0/System.Text.Encodings.Web.dll", + "lib/net6.0/System.Text.Encodings.Web.xml", + "lib/net7.0/System.Text.Encodings.Web.dll", + "lib/net7.0/System.Text.Encodings.Web.xml", + "lib/net8.0/System.Text.Encodings.Web.dll", + "lib/net8.0/System.Text.Encodings.Web.xml", + "lib/netstandard2.0/System.Text.Encodings.Web.dll", + "lib/netstandard2.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net6.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net6.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net7.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net7.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml", + "system.text.encodings.web.8.0.0.nupkg.sha512", + "system.text.encodings.web.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.RegularExpressions/4.3.0": { + "sha512": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "type": "package", + "path": "system.text.regularexpressions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net463/System.Text.RegularExpressions.dll", + "lib/netcore50/System.Text.RegularExpressions.dll", + "lib/netstandard1.6/System.Text.RegularExpressions.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net463/System.Text.RegularExpressions.dll", + "ref/netcore50/System.Text.RegularExpressions.dll", + "ref/netcore50/System.Text.RegularExpressions.xml", + "ref/netcore50/de/System.Text.RegularExpressions.xml", + "ref/netcore50/es/System.Text.RegularExpressions.xml", + "ref/netcore50/fr/System.Text.RegularExpressions.xml", + "ref/netcore50/it/System.Text.RegularExpressions.xml", + "ref/netcore50/ja/System.Text.RegularExpressions.xml", + "ref/netcore50/ko/System.Text.RegularExpressions.xml", + "ref/netcore50/ru/System.Text.RegularExpressions.xml", + "ref/netcore50/zh-hans/System.Text.RegularExpressions.xml", + "ref/netcore50/zh-hant/System.Text.RegularExpressions.xml", + "ref/netcoreapp1.1/System.Text.RegularExpressions.dll", + "ref/netstandard1.0/System.Text.RegularExpressions.dll", + "ref/netstandard1.0/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/de/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/es/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/fr/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/it/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/ja/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/ko/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/ru/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/zh-hans/System.Text.RegularExpressions.xml", + "ref/netstandard1.0/zh-hant/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/System.Text.RegularExpressions.dll", + "ref/netstandard1.3/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/de/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/es/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/fr/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/it/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/ja/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/ko/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/ru/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/zh-hans/System.Text.RegularExpressions.xml", + "ref/netstandard1.3/zh-hant/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/System.Text.RegularExpressions.dll", + "ref/netstandard1.6/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/de/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/es/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/fr/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/it/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/ja/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/ko/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/ru/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/zh-hans/System.Text.RegularExpressions.xml", + "ref/netstandard1.6/zh-hant/System.Text.RegularExpressions.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.text.regularexpressions.4.3.0.nupkg.sha512", + "system.text.regularexpressions.nuspec" + ] + }, + "System.Threading/4.3.0": { + "sha512": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "type": "package", + "path": "system.threading/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Threading.dll", + "lib/netstandard1.3/System.Threading.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Threading.dll", + "ref/netcore50/System.Threading.xml", + "ref/netcore50/de/System.Threading.xml", + "ref/netcore50/es/System.Threading.xml", + "ref/netcore50/fr/System.Threading.xml", + "ref/netcore50/it/System.Threading.xml", + "ref/netcore50/ja/System.Threading.xml", + "ref/netcore50/ko/System.Threading.xml", + "ref/netcore50/ru/System.Threading.xml", + "ref/netcore50/zh-hans/System.Threading.xml", + "ref/netcore50/zh-hant/System.Threading.xml", + "ref/netstandard1.0/System.Threading.dll", + "ref/netstandard1.0/System.Threading.xml", + "ref/netstandard1.0/de/System.Threading.xml", + "ref/netstandard1.0/es/System.Threading.xml", + "ref/netstandard1.0/fr/System.Threading.xml", + "ref/netstandard1.0/it/System.Threading.xml", + "ref/netstandard1.0/ja/System.Threading.xml", + "ref/netstandard1.0/ko/System.Threading.xml", + "ref/netstandard1.0/ru/System.Threading.xml", + "ref/netstandard1.0/zh-hans/System.Threading.xml", + "ref/netstandard1.0/zh-hant/System.Threading.xml", + "ref/netstandard1.3/System.Threading.dll", + "ref/netstandard1.3/System.Threading.xml", + "ref/netstandard1.3/de/System.Threading.xml", + "ref/netstandard1.3/es/System.Threading.xml", + "ref/netstandard1.3/fr/System.Threading.xml", + "ref/netstandard1.3/it/System.Threading.xml", + "ref/netstandard1.3/ja/System.Threading.xml", + "ref/netstandard1.3/ko/System.Threading.xml", + "ref/netstandard1.3/ru/System.Threading.xml", + "ref/netstandard1.3/zh-hans/System.Threading.xml", + "ref/netstandard1.3/zh-hant/System.Threading.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "runtimes/aot/lib/netcore50/System.Threading.dll", + "system.threading.4.3.0.nupkg.sha512", + "system.threading.nuspec" + ] + }, + "System.Threading.Channels/8.0.0": { + "sha512": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", + "type": "package", + "path": "system.threading.channels/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Threading.Channels.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", + "lib/net462/System.Threading.Channels.dll", + "lib/net462/System.Threading.Channels.xml", + "lib/net6.0/System.Threading.Channels.dll", + "lib/net6.0/System.Threading.Channels.xml", + "lib/net7.0/System.Threading.Channels.dll", + "lib/net7.0/System.Threading.Channels.xml", + "lib/net8.0/System.Threading.Channels.dll", + "lib/net8.0/System.Threading.Channels.xml", + "lib/netstandard2.0/System.Threading.Channels.dll", + "lib/netstandard2.0/System.Threading.Channels.xml", + "lib/netstandard2.1/System.Threading.Channels.dll", + "lib/netstandard2.1/System.Threading.Channels.xml", + "system.threading.channels.8.0.0.nupkg.sha512", + "system.threading.channels.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.RateLimiting/8.0.0": { + "sha512": "7mu9v0QDv66ar3DpGSZHg9NuNcxDaaAcnMULuZlaTpP9+hwXhrxNGsF5GmLkSHxFdb5bBc1TzeujsRgTrPWi+Q==", + "type": "package", + "path": "system.threading.ratelimiting/8.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Threading.RateLimiting.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/System.Threading.RateLimiting.targets", + "lib/net462/System.Threading.RateLimiting.dll", + "lib/net462/System.Threading.RateLimiting.xml", + "lib/net6.0/System.Threading.RateLimiting.dll", + "lib/net6.0/System.Threading.RateLimiting.xml", + "lib/net7.0/System.Threading.RateLimiting.dll", + "lib/net7.0/System.Threading.RateLimiting.xml", + "lib/net8.0/System.Threading.RateLimiting.dll", + "lib/net8.0/System.Threading.RateLimiting.xml", + "lib/netstandard2.0/System.Threading.RateLimiting.dll", + "lib/netstandard2.0/System.Threading.RateLimiting.xml", + "system.threading.ratelimiting.8.0.0.nupkg.sha512", + "system.threading.ratelimiting.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.Tasks/4.3.0": { + "sha512": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "type": "package", + "path": "system.threading.tasks/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Threading.Tasks.dll", + "ref/netcore50/System.Threading.Tasks.xml", + "ref/netcore50/de/System.Threading.Tasks.xml", + "ref/netcore50/es/System.Threading.Tasks.xml", + "ref/netcore50/fr/System.Threading.Tasks.xml", + "ref/netcore50/it/System.Threading.Tasks.xml", + "ref/netcore50/ja/System.Threading.Tasks.xml", + "ref/netcore50/ko/System.Threading.Tasks.xml", + "ref/netcore50/ru/System.Threading.Tasks.xml", + "ref/netcore50/zh-hans/System.Threading.Tasks.xml", + "ref/netcore50/zh-hant/System.Threading.Tasks.xml", + "ref/netstandard1.0/System.Threading.Tasks.dll", + "ref/netstandard1.0/System.Threading.Tasks.xml", + "ref/netstandard1.0/de/System.Threading.Tasks.xml", + "ref/netstandard1.0/es/System.Threading.Tasks.xml", + "ref/netstandard1.0/fr/System.Threading.Tasks.xml", + "ref/netstandard1.0/it/System.Threading.Tasks.xml", + "ref/netstandard1.0/ja/System.Threading.Tasks.xml", + "ref/netstandard1.0/ko/System.Threading.Tasks.xml", + "ref/netstandard1.0/ru/System.Threading.Tasks.xml", + "ref/netstandard1.0/zh-hans/System.Threading.Tasks.xml", + "ref/netstandard1.0/zh-hant/System.Threading.Tasks.xml", + "ref/netstandard1.3/System.Threading.Tasks.dll", + "ref/netstandard1.3/System.Threading.Tasks.xml", + "ref/netstandard1.3/de/System.Threading.Tasks.xml", + "ref/netstandard1.3/es/System.Threading.Tasks.xml", + "ref/netstandard1.3/fr/System.Threading.Tasks.xml", + "ref/netstandard1.3/it/System.Threading.Tasks.xml", + "ref/netstandard1.3/ja/System.Threading.Tasks.xml", + "ref/netstandard1.3/ko/System.Threading.Tasks.xml", + "ref/netstandard1.3/ru/System.Threading.Tasks.xml", + "ref/netstandard1.3/zh-hans/System.Threading.Tasks.xml", + "ref/netstandard1.3/zh-hant/System.Threading.Tasks.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.threading.tasks.4.3.0.nupkg.sha512", + "system.threading.tasks.nuspec" + ] + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "sha512": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "type": "package", + "path": "system.threading.tasks.extensions/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll", + "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml", + "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll", + "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml", + "system.threading.tasks.extensions.4.3.0.nupkg.sha512", + "system.threading.tasks.extensions.nuspec" + ] + }, + "System.Threading.Timer/4.3.0": { + "sha512": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", + "type": "package", + "path": "system.threading.timer/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net451/_._", + "lib/portable-net451+win81+wpa81/_._", + "lib/win81/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net451/_._", + "ref/netcore50/System.Threading.Timer.dll", + "ref/netcore50/System.Threading.Timer.xml", + "ref/netcore50/de/System.Threading.Timer.xml", + "ref/netcore50/es/System.Threading.Timer.xml", + "ref/netcore50/fr/System.Threading.Timer.xml", + "ref/netcore50/it/System.Threading.Timer.xml", + "ref/netcore50/ja/System.Threading.Timer.xml", + "ref/netcore50/ko/System.Threading.Timer.xml", + "ref/netcore50/ru/System.Threading.Timer.xml", + "ref/netcore50/zh-hans/System.Threading.Timer.xml", + "ref/netcore50/zh-hant/System.Threading.Timer.xml", + "ref/netstandard1.2/System.Threading.Timer.dll", + "ref/netstandard1.2/System.Threading.Timer.xml", + "ref/netstandard1.2/de/System.Threading.Timer.xml", + "ref/netstandard1.2/es/System.Threading.Timer.xml", + "ref/netstandard1.2/fr/System.Threading.Timer.xml", + "ref/netstandard1.2/it/System.Threading.Timer.xml", + "ref/netstandard1.2/ja/System.Threading.Timer.xml", + "ref/netstandard1.2/ko/System.Threading.Timer.xml", + "ref/netstandard1.2/ru/System.Threading.Timer.xml", + "ref/netstandard1.2/zh-hans/System.Threading.Timer.xml", + "ref/netstandard1.2/zh-hant/System.Threading.Timer.xml", + "ref/portable-net451+win81+wpa81/_._", + "ref/win81/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.threading.timer.4.3.0.nupkg.sha512", + "system.threading.timer.nuspec" + ] + }, + "System.Xml.ReaderWriter/4.3.0": { + "sha512": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "type": "package", + "path": "system.xml.readerwriter/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net46/System.Xml.ReaderWriter.dll", + "lib/netcore50/System.Xml.ReaderWriter.dll", + "lib/netstandard1.3/System.Xml.ReaderWriter.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/net46/System.Xml.ReaderWriter.dll", + "ref/netcore50/System.Xml.ReaderWriter.dll", + "ref/netcore50/System.Xml.ReaderWriter.xml", + "ref/netcore50/de/System.Xml.ReaderWriter.xml", + "ref/netcore50/es/System.Xml.ReaderWriter.xml", + "ref/netcore50/fr/System.Xml.ReaderWriter.xml", + "ref/netcore50/it/System.Xml.ReaderWriter.xml", + "ref/netcore50/ja/System.Xml.ReaderWriter.xml", + "ref/netcore50/ko/System.Xml.ReaderWriter.xml", + "ref/netcore50/ru/System.Xml.ReaderWriter.xml", + "ref/netcore50/zh-hans/System.Xml.ReaderWriter.xml", + "ref/netcore50/zh-hant/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/System.Xml.ReaderWriter.dll", + "ref/netstandard1.0/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/de/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/es/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/fr/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/it/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/ja/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/ko/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/ru/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/zh-hans/System.Xml.ReaderWriter.xml", + "ref/netstandard1.0/zh-hant/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/System.Xml.ReaderWriter.dll", + "ref/netstandard1.3/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/de/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/es/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/fr/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/it/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/ja/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/ko/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/ru/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/zh-hans/System.Xml.ReaderWriter.xml", + "ref/netstandard1.3/zh-hant/System.Xml.ReaderWriter.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.xml.readerwriter.4.3.0.nupkg.sha512", + "system.xml.readerwriter.nuspec" + ] + }, + "System.Xml.XDocument/4.3.0": { + "sha512": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "type": "package", + "path": "system.xml.xdocument/4.3.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Xml.XDocument.dll", + "lib/netstandard1.3/System.Xml.XDocument.dll", + "lib/portable-net45+win8+wp8+wpa81/_._", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "lib/xamarintvos10/_._", + "lib/xamarinwatchos10/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/net45/_._", + "ref/netcore50/System.Xml.XDocument.dll", + "ref/netcore50/System.Xml.XDocument.xml", + "ref/netcore50/de/System.Xml.XDocument.xml", + "ref/netcore50/es/System.Xml.XDocument.xml", + "ref/netcore50/fr/System.Xml.XDocument.xml", + "ref/netcore50/it/System.Xml.XDocument.xml", + "ref/netcore50/ja/System.Xml.XDocument.xml", + "ref/netcore50/ko/System.Xml.XDocument.xml", + "ref/netcore50/ru/System.Xml.XDocument.xml", + "ref/netcore50/zh-hans/System.Xml.XDocument.xml", + "ref/netcore50/zh-hant/System.Xml.XDocument.xml", + "ref/netstandard1.0/System.Xml.XDocument.dll", + "ref/netstandard1.0/System.Xml.XDocument.xml", + "ref/netstandard1.0/de/System.Xml.XDocument.xml", + "ref/netstandard1.0/es/System.Xml.XDocument.xml", + "ref/netstandard1.0/fr/System.Xml.XDocument.xml", + "ref/netstandard1.0/it/System.Xml.XDocument.xml", + "ref/netstandard1.0/ja/System.Xml.XDocument.xml", + "ref/netstandard1.0/ko/System.Xml.XDocument.xml", + "ref/netstandard1.0/ru/System.Xml.XDocument.xml", + "ref/netstandard1.0/zh-hans/System.Xml.XDocument.xml", + "ref/netstandard1.0/zh-hant/System.Xml.XDocument.xml", + "ref/netstandard1.3/System.Xml.XDocument.dll", + "ref/netstandard1.3/System.Xml.XDocument.xml", + "ref/netstandard1.3/de/System.Xml.XDocument.xml", + "ref/netstandard1.3/es/System.Xml.XDocument.xml", + "ref/netstandard1.3/fr/System.Xml.XDocument.xml", + "ref/netstandard1.3/it/System.Xml.XDocument.xml", + "ref/netstandard1.3/ja/System.Xml.XDocument.xml", + "ref/netstandard1.3/ko/System.Xml.XDocument.xml", + "ref/netstandard1.3/ru/System.Xml.XDocument.xml", + "ref/netstandard1.3/zh-hans/System.Xml.XDocument.xml", + "ref/netstandard1.3/zh-hant/System.Xml.XDocument.xml", + "ref/portable-net45+win8+wp8+wpa81/_._", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "ref/xamarintvos10/_._", + "ref/xamarinwatchos10/_._", + "system.xml.xdocument.4.3.0.nupkg.sha512", + "system.xml.xdocument.nuspec" + ] + }, + "xunit/2.5.3": { + "sha512": "VxYDiWSwrLxOJ3UEN+ZPrBybB0SFShQ1E6PjT65VdoKCJhorgerFznThjSwawRH/WAip73YnucDVsE8WRj/8KQ==", + "type": "package", + "path": "xunit/2.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "xunit.2.5.3.nupkg.sha512", + "xunit.nuspec" + ] + }, + "xunit.abstractions/2.0.3": { + "sha512": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==", + "type": "package", + "path": "xunit.abstractions/2.0.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net35/xunit.abstractions.dll", + "lib/net35/xunit.abstractions.xml", + "lib/netstandard1.0/xunit.abstractions.dll", + "lib/netstandard1.0/xunit.abstractions.xml", + "lib/netstandard2.0/xunit.abstractions.dll", + "lib/netstandard2.0/xunit.abstractions.xml", + "xunit.abstractions.2.0.3.nupkg.sha512", + "xunit.abstractions.nuspec" + ] + }, + "xunit.analyzers/1.4.0": { + "sha512": "7ljnTJfFjz5zK+Jf0h2dd2QOSO6UmFizXsojv/x4QX7TU5vEgtKZPk9RvpkiuUqg2bddtNZufBoKQalsi7djfA==", + "type": "package", + "path": "xunit.analyzers/1.4.0", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "analyzers/dotnet/cs/xunit.analyzers.dll", + "analyzers/dotnet/cs/xunit.analyzers.fixes.dll", + "tools/install.ps1", + "tools/uninstall.ps1", + "xunit.analyzers.1.4.0.nupkg.sha512", + "xunit.analyzers.nuspec" + ] + }, + "xunit.assert/2.5.3": { + "sha512": "MK3HiBckO3vdxEdUxXZyyRPsBNPsC/nz6y1gj/UZIZkjMnsVQyZPU8yxS/3cjTchYcqskt/nqUOS5wmD8JezdQ==", + "type": "package", + "path": "xunit.assert/2.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/netstandard1.1/xunit.assert.dll", + "lib/netstandard1.1/xunit.assert.xml", + "xunit.assert.2.5.3.nupkg.sha512", + "xunit.assert.nuspec" + ] + }, + "xunit.core/2.5.3": { + "sha512": "FE8yEEUkoMLd6kOHDXm/QYfX/dYzwc0c+Q4MQon6VGRwFuy6UVGwK/CFA5LEea+ZBEmcco7AEl2q78VjsA0j/w==", + "type": "package", + "path": "xunit.core/2.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/xunit.core.props", + "build/xunit.core.targets", + "buildMultiTargeting/xunit.core.props", + "buildMultiTargeting/xunit.core.targets", + "xunit.core.2.5.3.nupkg.sha512", + "xunit.core.nuspec" + ] + }, + "xunit.extensibility.core/2.5.3": { + "sha512": "IjAQlPeZWXP89pl1EuOG9991GH1qgAL0rQfkmX2UV+PDenbYb7oBnQopL9ujE6YaXxgaQazp7lFjsDyyxD6Mtw==", + "type": "package", + "path": "xunit.extensibility.core/2.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.core.dll", + "lib/net452/xunit.core.dll.tdnet", + "lib/net452/xunit.core.xml", + "lib/net452/xunit.runner.tdnet.dll", + "lib/net452/xunit.runner.utility.net452.dll", + "lib/netstandard1.1/xunit.core.dll", + "lib/netstandard1.1/xunit.core.xml", + "xunit.extensibility.core.2.5.3.nupkg.sha512", + "xunit.extensibility.core.nuspec" + ] + }, + "xunit.extensibility.execution/2.5.3": { + "sha512": "w9eGCHl+gJj1GzZSf0VTzYPp/gv4fiUDkr+yR7/Wv9/ucO2CHltGg2TnyySLFjzekkjuxVJZUE+tZyDNzryJFw==", + "type": "package", + "path": "xunit.extensibility.execution/2.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "lib/net452/xunit.execution.desktop.dll", + "lib/net452/xunit.execution.desktop.xml", + "lib/netstandard1.1/xunit.execution.dotnet.dll", + "lib/netstandard1.1/xunit.execution.dotnet.xml", + "xunit.extensibility.execution.2.5.3.nupkg.sha512", + "xunit.extensibility.execution.nuspec" + ] + }, + "xunit.runner.visualstudio/2.5.3": { + "sha512": "HFFL6O+QLEOfs555SqHii48ovVa4CqGYanY+B32BjLpPptdE+wEJmCFNXlLHdEOD5LYeayb9EroaUpydGpcybg==", + "type": "package", + "path": "xunit.runner.visualstudio/2.5.3", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "_content/README.md", + "_content/logo-128-transparent.png", + "build/net462/xunit.abstractions.dll", + "build/net462/xunit.runner.reporters.net452.dll", + "build/net462/xunit.runner.utility.net452.dll", + "build/net462/xunit.runner.visualstudio.props", + "build/net462/xunit.runner.visualstudio.testadapter.dll", + "build/net6.0/xunit.abstractions.dll", + "build/net6.0/xunit.runner.reporters.netcoreapp10.dll", + "build/net6.0/xunit.runner.utility.netcoreapp10.dll", + "build/net6.0/xunit.runner.visualstudio.dotnetcore.testadapter.dll", + "build/net6.0/xunit.runner.visualstudio.props", + "lib/net462/_._", + "lib/net6.0/_._", + "xunit.runner.visualstudio.2.5.3.nupkg.sha512", + "xunit.runner.visualstudio.nuspec" + ] + }, + "IM_API/1.0.0": { + "type": "project", + "path": "../IM_API/IM_API.csproj", + "msbuildProject": "../IM_API/IM_API.csproj" + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "IM_API >= 1.0.0", + "Microsoft.EntityFrameworkCore.InMemory >= 8.0.22", + "Microsoft.NET.Test.Sdk >= 17.8.0", + "Moq >= 4.20.72", + "coverlet.collector >= 6.0.0", + "xunit >= 2.5.3", + "xunit.runner.visualstudio >= 2.5.3" + ] + }, + "packageFolders": { + "C:\\Users\\nanxun\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\IMTest.csproj", + "projectName": "IMTest", + "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\IMTest.csproj", + "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", + "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\nanxun\\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": { + "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj": { + "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IM_API\\IM_API.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Microsoft.EntityFrameworkCore.InMemory": { + "target": "Package", + "version": "[8.0.22, )" + }, + "Microsoft.NET.Test.Sdk": { + "target": "Package", + "version": "[17.8.0, )" + }, + "Moq": { + "target": "Package", + "version": "[4.20.72, )" + }, + "coverlet.collector": { + "target": "Package", + "version": "[6.0.0, )" + }, + "xunit": { + "target": "Package", + "version": "[2.5.3, )" + }, + "xunit.runner.visualstudio": { + "target": "Package", + "version": "[2.5.3, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } } \ No newline at end of file diff --git a/backend/IMTest/obj/project.nuget.cache b/backend/IMTest/obj/project.nuget.cache index e5a6826..b3383d7 100644 --- a/backend/IMTest/obj/project.nuget.cache +++ b/backend/IMTest/obj/project.nuget.cache @@ -1,176 +1,176 @@ -{ - "version": 2, - "dgSpecHash": "ueA0djhC8vQ=", - "success": true, - "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\IMTest.csproj", - "expectedPackageFiles": [ - "C:\\Users\\nanxun\\.nuget\\packages\\automapper\\12.0.1\\automapper.12.0.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\automapper.extensions.microsoft.dependencyinjection\\12.0.0\\automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\castle.core\\5.1.1\\castle.core.5.1.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\coverlet.collector\\6.0.0\\coverlet.collector.6.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\masstransit\\8.5.5\\masstransit.8.5.5.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\masstransit.abstractions\\8.5.5\\masstransit.abstractions.8.5.5.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\masstransit.rabbitmq\\8.5.5\\masstransit.rabbitmq.8.5.5.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authentication.abstractions\\2.3.0\\microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authentication.jwtbearer\\8.0.21\\microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authorization\\2.3.0\\microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authorization.policy\\2.3.0\\microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.connections.abstractions\\2.3.0\\microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.hosting.abstractions\\2.3.0\\microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.hosting.server.abstractions\\2.3.0\\microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http\\2.3.0\\microsoft.aspnetcore.http.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.abstractions\\2.3.0\\microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections\\1.2.0\\microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.common\\1.2.0\\microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.extensions\\2.3.0\\microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.features\\2.3.0\\microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.routing\\2.3.0\\microsoft.aspnetcore.routing.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.routing.abstractions\\2.3.0\\microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr\\1.2.0\\microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.common\\1.2.0\\microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.core\\1.2.0\\microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.protocols.json\\1.2.0\\microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.websockets\\2.3.0\\microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.webutilities\\2.3.0\\microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.codecoverage\\17.8.0\\microsoft.codecoverage.17.8.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.22\\microsoft.entityframeworkcore.8.0.22.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.22\\microsoft.entityframeworkcore.abstractions.8.0.22.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.22\\microsoft.entityframeworkcore.analyzers.8.0.22.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.inmemory\\8.0.22\\microsoft.entityframeworkcore.inmemory.8.0.22.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.13\\microsoft.entityframeworkcore.relational.8.0.13.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\10.0.2\\microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.caching.stackexchangeredis\\10.0.2\\microsoft.extensions.caching.stackexchangeredis.10.0.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\10.0.2\\microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\8.0.1\\microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.diagnostics.healthchecks\\8.0.0\\microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.diagnostics.healthchecks.abstractions\\8.0.0\\microsoft.extensions.diagnostics.healthchecks.abstractions.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\8.0.0\\microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\8.0.1\\microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\10.0.2\\microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.objectpool\\8.0.11\\microsoft.extensions.objectpool.8.0.11.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.options\\10.0.2\\microsoft.extensions.options.10.0.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.primitives\\10.0.2\\microsoft.extensions.primitives.10.0.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.abstractions\\8.14.0\\microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\8.14.0\\microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.logging\\8.14.0\\microsoft.identitymodel.logging.8.14.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.protocols\\7.1.2\\microsoft.identitymodel.protocols.7.1.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.protocols.openidconnect\\7.1.2\\microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.tokens\\8.14.0\\microsoft.identitymodel.tokens.8.14.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.net.http.headers\\2.3.0\\microsoft.net.http.headers.2.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.net.test.sdk\\17.8.0\\microsoft.net.test.sdk.17.8.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.openapi\\1.6.14\\microsoft.openapi.1.6.14.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.testplatform.objectmodel\\17.8.0\\microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.testplatform.testhost\\17.8.0\\microsoft.testplatform.testhost.17.8.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.visualstudio.azure.containers.tools.targets\\1.22.1\\microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.win32.primitives\\4.3.0\\microsoft.win32.primitives.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\moq\\4.20.72\\moq.4.20.72.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\mysqlconnector\\2.3.5\\mysqlconnector.2.3.5.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\netstandard.library\\1.6.1\\netstandard.library.1.6.1.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\newtonsoft.json\\13.0.4\\newtonsoft.json.13.0.4.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\nuget.frameworks\\6.5.0\\nuget.frameworks.6.5.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.8\\pipelines.sockets.unofficial.2.2.8.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\pomelo.entityframeworkcore.mysql\\8.0.3\\pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\rabbitmq.client\\7.1.2\\rabbitmq.client.7.1.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\redlock.net\\2.3.2\\redlock.net.2.3.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system\\4.3.0\\runtime.native.system.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.io.compression\\4.3.0\\runtime.native.system.io.compression.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.net.http\\4.3.0\\runtime.native.system.net.http.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\stackexchange.redis\\2.9.32\\stackexchange.redis.2.9.32.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore\\6.6.2\\swashbuckle.aspnetcore.6.6.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.6.2\\swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.6.2\\swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.6.2\\swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.appcontext\\4.3.0\\system.appcontext.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.buffers\\4.6.0\\system.buffers.4.6.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.console\\4.3.0\\system.console.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.diagnosticsource\\10.0.2\\system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.eventlog\\6.0.0\\system.diagnostics.eventlog.6.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.tools\\4.3.0\\system.diagnostics.tools.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.globalization.calendars\\4.3.0\\system.globalization.calendars.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.globalization.extensions\\4.3.0\\system.globalization.extensions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.identitymodel.tokens.jwt\\8.14.0\\system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io.compression\\4.3.0\\system.io.compression.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io.compression.zipfile\\4.3.0\\system.io.compression.zipfile.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io.pipelines\\8.0.0\\system.io.pipelines.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.net.http\\4.3.0\\system.net.http.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.net.primitives\\4.3.0\\system.net.primitives.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.net.sockets\\4.3.0\\system.net.sockets.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.net.websockets.websocketprotocol\\5.1.0\\system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.emit\\4.7.0\\system.reflection.emit.4.7.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.metadata\\1.6.0\\system.reflection.metadata.1.6.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.interopservices.runtimeinformation\\4.3.0\\system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.numerics\\4.3.0\\system.runtime.numerics.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.algorithms\\4.3.0\\system.security.cryptography.algorithms.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.cng\\4.3.0\\system.security.cryptography.cng.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.csp\\4.3.0\\system.security.cryptography.csp.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.encoding\\4.3.0\\system.security.cryptography.encoding.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.openssl\\4.3.0\\system.security.cryptography.openssl.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.primitives\\4.3.0\\system.security.cryptography.primitives.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.3.0\\system.security.cryptography.x509certificates.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encodings.web\\8.0.0\\system.text.encodings.web.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.regularexpressions\\4.3.0\\system.text.regularexpressions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.channels\\8.0.0\\system.threading.channels.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.ratelimiting\\8.0.0\\system.threading.ratelimiting.8.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.tasks.extensions\\4.3.0\\system.threading.tasks.extensions.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.timer\\4.3.0\\system.threading.timer.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.xml.readerwriter\\4.3.0\\system.xml.readerwriter.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.xml.xdocument\\4.3.0\\system.xml.xdocument.4.3.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit\\2.5.3\\xunit.2.5.3.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit.abstractions\\2.0.3\\xunit.abstractions.2.0.3.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit.analyzers\\1.4.0\\xunit.analyzers.1.4.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit.assert\\2.5.3\\xunit.assert.2.5.3.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit.core\\2.5.3\\xunit.core.2.5.3.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit.extensibility.core\\2.5.3\\xunit.extensibility.core.2.5.3.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit.extensibility.execution\\2.5.3\\xunit.extensibility.execution.2.5.3.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\xunit.runner.visualstudio\\2.5.3\\xunit.runner.visualstudio.2.5.3.nupkg.sha512" - ], - "logs": [] +{ + "version": 2, + "dgSpecHash": "ueA0djhC8vQ=", + "success": true, + "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\IMTest.csproj", + "expectedPackageFiles": [ + "C:\\Users\\nanxun\\.nuget\\packages\\automapper\\12.0.1\\automapper.12.0.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\automapper.extensions.microsoft.dependencyinjection\\12.0.0\\automapper.extensions.microsoft.dependencyinjection.12.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\castle.core\\5.1.1\\castle.core.5.1.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\coverlet.collector\\6.0.0\\coverlet.collector.6.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\masstransit\\8.5.5\\masstransit.8.5.5.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\masstransit.abstractions\\8.5.5\\masstransit.abstractions.8.5.5.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\masstransit.rabbitmq\\8.5.5\\masstransit.rabbitmq.8.5.5.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authentication.abstractions\\2.3.0\\microsoft.aspnetcore.authentication.abstractions.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authentication.jwtbearer\\8.0.21\\microsoft.aspnetcore.authentication.jwtbearer.8.0.21.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authorization\\2.3.0\\microsoft.aspnetcore.authorization.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.authorization.policy\\2.3.0\\microsoft.aspnetcore.authorization.policy.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.connections.abstractions\\2.3.0\\microsoft.aspnetcore.connections.abstractions.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.hosting.abstractions\\2.3.0\\microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.hosting.server.abstractions\\2.3.0\\microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http\\2.3.0\\microsoft.aspnetcore.http.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.abstractions\\2.3.0\\microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections\\1.2.0\\microsoft.aspnetcore.http.connections.1.2.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.common\\1.2.0\\microsoft.aspnetcore.http.connections.common.1.2.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.extensions\\2.3.0\\microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.features\\2.3.0\\microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.routing\\2.3.0\\microsoft.aspnetcore.routing.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.routing.abstractions\\2.3.0\\microsoft.aspnetcore.routing.abstractions.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr\\1.2.0\\microsoft.aspnetcore.signalr.1.2.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.common\\1.2.0\\microsoft.aspnetcore.signalr.common.1.2.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.core\\1.2.0\\microsoft.aspnetcore.signalr.core.1.2.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.protocols.json\\1.2.0\\microsoft.aspnetcore.signalr.protocols.json.1.2.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.websockets\\2.3.0\\microsoft.aspnetcore.websockets.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.webutilities\\2.3.0\\microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.codecoverage\\17.8.0\\microsoft.codecoverage.17.8.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore\\8.0.22\\microsoft.entityframeworkcore.8.0.22.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\8.0.22\\microsoft.entityframeworkcore.abstractions.8.0.22.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\8.0.22\\microsoft.entityframeworkcore.analyzers.8.0.22.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.inmemory\\8.0.22\\microsoft.entityframeworkcore.inmemory.8.0.22.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\8.0.13\\microsoft.entityframeworkcore.relational.8.0.13.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\10.0.2\\microsoft.extensions.caching.abstractions.10.0.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.caching.memory\\8.0.1\\microsoft.extensions.caching.memory.8.0.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.caching.stackexchangeredis\\10.0.2\\microsoft.extensions.caching.stackexchangeredis.10.0.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\8.0.1\\microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\10.0.2\\microsoft.extensions.dependencyinjection.abstractions.10.0.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.diagnostics.abstractions\\8.0.1\\microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.diagnostics.healthchecks\\8.0.0\\microsoft.extensions.diagnostics.healthchecks.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.diagnostics.healthchecks.abstractions\\8.0.0\\microsoft.extensions.diagnostics.healthchecks.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\8.0.0\\microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\8.0.1\\microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging\\8.0.1\\microsoft.extensions.logging.8.0.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\10.0.2\\microsoft.extensions.logging.abstractions.10.0.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.objectpool\\8.0.11\\microsoft.extensions.objectpool.8.0.11.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.options\\10.0.2\\microsoft.extensions.options.10.0.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.primitives\\10.0.2\\microsoft.extensions.primitives.10.0.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.abstractions\\8.14.0\\microsoft.identitymodel.abstractions.8.14.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.jsonwebtokens\\8.14.0\\microsoft.identitymodel.jsonwebtokens.8.14.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.logging\\8.14.0\\microsoft.identitymodel.logging.8.14.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.protocols\\7.1.2\\microsoft.identitymodel.protocols.7.1.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.protocols.openidconnect\\7.1.2\\microsoft.identitymodel.protocols.openidconnect.7.1.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.identitymodel.tokens\\8.14.0\\microsoft.identitymodel.tokens.8.14.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.net.http.headers\\2.3.0\\microsoft.net.http.headers.2.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.net.test.sdk\\17.8.0\\microsoft.net.test.sdk.17.8.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.openapi\\1.6.14\\microsoft.openapi.1.6.14.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.testplatform.objectmodel\\17.8.0\\microsoft.testplatform.objectmodel.17.8.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.testplatform.testhost\\17.8.0\\microsoft.testplatform.testhost.17.8.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.visualstudio.azure.containers.tools.targets\\1.22.1\\microsoft.visualstudio.azure.containers.tools.targets.1.22.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.win32.primitives\\4.3.0\\microsoft.win32.primitives.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\moq\\4.20.72\\moq.4.20.72.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\mysqlconnector\\2.3.5\\mysqlconnector.2.3.5.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\netstandard.library\\1.6.1\\netstandard.library.1.6.1.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\newtonsoft.json\\13.0.4\\newtonsoft.json.13.0.4.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\nuget.frameworks\\6.5.0\\nuget.frameworks.6.5.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\pipelines.sockets.unofficial\\2.2.8\\pipelines.sockets.unofficial.2.2.8.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\pomelo.entityframeworkcore.mysql\\8.0.3\\pomelo.entityframeworkcore.mysql.8.0.3.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\rabbitmq.client\\7.1.2\\rabbitmq.client.7.1.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\redlock.net\\2.3.2\\redlock.net.2.3.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system\\4.3.0\\runtime.native.system.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.io.compression\\4.3.0\\runtime.native.system.io.compression.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.net.http\\4.3.0\\runtime.native.system.net.http.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\stackexchange.redis\\2.9.32\\stackexchange.redis.2.9.32.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore\\6.6.2\\swashbuckle.aspnetcore.6.6.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.6.2\\swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggergen\\6.6.2\\swashbuckle.aspnetcore.swaggergen.6.6.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swaggerui\\6.6.2\\swashbuckle.aspnetcore.swaggerui.6.6.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.appcontext\\4.3.0\\system.appcontext.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.buffers\\4.6.0\\system.buffers.4.6.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.console\\4.3.0\\system.console.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.diagnosticsource\\10.0.2\\system.diagnostics.diagnosticsource.10.0.2.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.eventlog\\6.0.0\\system.diagnostics.eventlog.6.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.tools\\4.3.0\\system.diagnostics.tools.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.globalization.calendars\\4.3.0\\system.globalization.calendars.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.globalization.extensions\\4.3.0\\system.globalization.extensions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.identitymodel.tokens.jwt\\8.14.0\\system.identitymodel.tokens.jwt.8.14.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io.compression\\4.3.0\\system.io.compression.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io.compression.zipfile\\4.3.0\\system.io.compression.zipfile.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io.pipelines\\8.0.0\\system.io.pipelines.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.net.http\\4.3.0\\system.net.http.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.net.primitives\\4.3.0\\system.net.primitives.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.net.sockets\\4.3.0\\system.net.sockets.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.net.websockets.websocketprotocol\\5.1.0\\system.net.websockets.websocketprotocol.5.1.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.emit\\4.7.0\\system.reflection.emit.4.7.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.metadata\\1.6.0\\system.reflection.metadata.1.6.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.interopservices.runtimeinformation\\4.3.0\\system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.runtime.numerics\\4.3.0\\system.runtime.numerics.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.algorithms\\4.3.0\\system.security.cryptography.algorithms.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.cng\\4.3.0\\system.security.cryptography.cng.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.csp\\4.3.0\\system.security.cryptography.csp.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.encoding\\4.3.0\\system.security.cryptography.encoding.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.openssl\\4.3.0\\system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.primitives\\4.3.0\\system.security.cryptography.primitives.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.3.0\\system.security.cryptography.x509certificates.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encodings.web\\8.0.0\\system.text.encodings.web.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.regularexpressions\\4.3.0\\system.text.regularexpressions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.channels\\8.0.0\\system.threading.channels.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.ratelimiting\\8.0.0\\system.threading.ratelimiting.8.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.tasks.extensions\\4.3.0\\system.threading.tasks.extensions.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.timer\\4.3.0\\system.threading.timer.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.xml.readerwriter\\4.3.0\\system.xml.readerwriter.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.xml.xdocument\\4.3.0\\system.xml.xdocument.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit\\2.5.3\\xunit.2.5.3.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit.abstractions\\2.0.3\\xunit.abstractions.2.0.3.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit.analyzers\\1.4.0\\xunit.analyzers.1.4.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit.assert\\2.5.3\\xunit.assert.2.5.3.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit.core\\2.5.3\\xunit.core.2.5.3.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit.extensibility.core\\2.5.3\\xunit.extensibility.core.2.5.3.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit.extensibility.execution\\2.5.3\\xunit.extensibility.execution.2.5.3.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\xunit.runner.visualstudio\\2.5.3\\xunit.runner.visualstudio.2.5.3.nupkg.sha512" + ], + "logs": [] } \ No newline at end of file diff --git a/backend/IM_API/.dockerignore b/backend/IM_API/.dockerignore index fe1152b..4d72b4f 100644 --- a/backend/IM_API/.dockerignore +++ b/backend/IM_API/.dockerignore @@ -1,30 +1,30 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md -!**/.gitignore -!.git/HEAD -!.git/config -!.git/packed-refs +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs !.git/refs/heads/** \ No newline at end of file diff --git a/backend/IM_API/.gitignore b/backend/IM_API/.gitignore index 3e16852..0e6ce67 100644 --- a/backend/IM_API/.gitignore +++ b/backend/IM_API/.gitignore @@ -1,3 +1,3 @@ -bin/ -obj/ +bin/ +obj/ .vs/ \ No newline at end of file diff --git a/backend/IM_API/Aggregate/FriendRequestAggregate.cs b/backend/IM_API/Aggregate/FriendRequestAggregate.cs index a5bfb43..bd48d2e 100644 --- a/backend/IM_API/Aggregate/FriendRequestAggregate.cs +++ b/backend/IM_API/Aggregate/FriendRequestAggregate.cs @@ -1,20 +1,20 @@ -using IM_API.Models; - -namespace IM_API.Aggregate -{ - public class FriendRequestAggregate - { - public Friend Friend { get; private set; } - public FriendRequest FriendRequest { get; private set; } - public FriendRequestAggregate() { } - public FriendRequestAggregate(Friend friend,FriendRequest friendRequest) - { - Friend = friend; - FriendRequest = friendRequest; - } - public void Accept(string? remarkName = null) - { - - } - } -} +using IM_API.Models; + +namespace IM_API.Aggregate +{ + public class FriendRequestAggregate + { + public Friend Friend { get; private set; } + public FriendRequest FriendRequest { get; private set; } + public FriendRequestAggregate() { } + public FriendRequestAggregate(Friend friend,FriendRequest friendRequest) + { + Friend = friend; + FriendRequest = friendRequest; + } + public void Accept(string? remarkName = null) + { + + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddConversationHandler.cs b/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddConversationHandler.cs index e621e48..8bc260a 100644 --- a/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddConversationHandler.cs +++ b/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddConversationHandler.cs @@ -1,23 +1,23 @@ -using IM_API.Domain.Events; -using IM_API.Interface.Services; -using MassTransit; - -namespace IM_API.Application.EventHandlers.FriendAddHandler -{ - public class FriendAddConversationHandler : IConsumer - { - private readonly IConversationService _cService; - public FriendAddConversationHandler(IConversationService cService) - { - _cService = cService; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - await _cService.MakeConversationAsync(@event.RequestUserId, @event.ResponseUserId, Models.ChatType.PRIVATE); - await _cService.MakeConversationAsync(@event.ResponseUserId, @event.RequestUserId, Models.ChatType.PRIVATE); - - } - } -} +using IM_API.Domain.Events; +using IM_API.Interface.Services; +using MassTransit; + +namespace IM_API.Application.EventHandlers.FriendAddHandler +{ + public class FriendAddConversationHandler : IConsumer + { + private readonly IConversationService _cService; + public FriendAddConversationHandler(IConversationService cService) + { + _cService = cService; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + await _cService.MakeConversationAsync(@event.RequestUserId, @event.ResponseUserId, Models.ChatType.PRIVATE); + await _cService.MakeConversationAsync(@event.ResponseUserId, @event.RequestUserId, Models.ChatType.PRIVATE); + + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddDBHandler.cs b/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddDBHandler.cs index 052cdd5..403990b 100644 --- a/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddDBHandler.cs +++ b/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddDBHandler.cs @@ -1,29 +1,29 @@ -using IM_API.Domain.Events; -using IM_API.Interface.Services; -using MassTransit; - -namespace IM_API.Application.EventHandlers.FriendAddHandler -{ - public class FriendAddDBHandler : IConsumer - { - private readonly IFriendSerivce _friendService; - private readonly ILogger _logger; - public FriendAddDBHandler(IFriendSerivce friendService, ILogger logger) - { - _friendService = friendService; - _logger = logger; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - - //为请求发起人添加好友记录 - await _friendService.MakeFriendshipAsync( - @event.RequestUserId, @event.ResponseUserId, @event.RequestInfo.RemarkName); - //为接收人添加好友记录 - await _friendService.MakeFriendshipAsync( - @event.ResponseUserId, @event.RequestUserId, @event.requestUserRemarkname); - } - } -} +using IM_API.Domain.Events; +using IM_API.Interface.Services; +using MassTransit; + +namespace IM_API.Application.EventHandlers.FriendAddHandler +{ + public class FriendAddDBHandler : IConsumer + { + private readonly IFriendSerivce _friendService; + private readonly ILogger _logger; + public FriendAddDBHandler(IFriendSerivce friendService, ILogger logger) + { + _friendService = friendService; + _logger = logger; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + + //为请求发起人添加好友记录 + await _friendService.MakeFriendshipAsync( + @event.RequestUserId, @event.ResponseUserId, @event.RequestInfo.RemarkName); + //为接收人添加好友记录 + await _friendService.MakeFriendshipAsync( + @event.ResponseUserId, @event.RequestUserId, @event.requestUserRemarkname); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddSignalRHandler.cs b/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddSignalRHandler.cs index e692035..77e1ca8 100644 --- a/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddSignalRHandler.cs +++ b/backend/IM_API/Application/EventHandlers/FriendAddHandler/FriendAddSignalRHandler.cs @@ -1,37 +1,37 @@ -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Hubs; -using IM_API.Interface.Services; -using IM_API.Models; -using MassTransit; -using Microsoft.AspNetCore.SignalR; - -namespace IM_API.Application.EventHandlers.FriendAddHandler -{ - public class FriendAddSignalRHandler : IConsumer - { - private readonly IHubContext _chathub; - public FriendAddSignalRHandler(IHubContext chathub) - { - _chathub = chathub; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - var usersList = new List { - @event.RequestUserId.ToString(), @event.ResponseUserId.ToString() - }; - var res = new HubResponse("Event", new MessageBaseDto() - { - ChatType = ChatType.PRIVATE, - Content = "您有新的好友关系已添加", - //MsgId = @event.EventId.ToString(), - ReceiverId = @event.ResponseUserId, - SenderId = @event.RequestUserId, - TimeStamp = DateTime.Now - }); - await _chathub.Clients.Users(usersList).SendAsync("ReceiveMessage", res); - } - } -} +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Hubs; +using IM_API.Interface.Services; +using IM_API.Models; +using MassTransit; +using Microsoft.AspNetCore.SignalR; + +namespace IM_API.Application.EventHandlers.FriendAddHandler +{ + public class FriendAddSignalRHandler : IConsumer + { + private readonly IHubContext _chathub; + public FriendAddSignalRHandler(IHubContext chathub) + { + _chathub = chathub; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + var usersList = new List { + @event.RequestUserId.ToString(), @event.ResponseUserId.ToString() + }; + var res = new HubResponse("Event", new MessageBaseDto() + { + ChatType = ChatType.PRIVATE, + Content = "您有新的好友关系已添加", + //MsgId = @event.EventId.ToString(), + ReceiverId = @event.ResponseUserId, + SenderId = @event.RequestUserId, + TimeStamp = DateTime.Now + }); + await _chathub.Clients.Users(usersList).SendAsync("ReceiveMessage", res); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/RequestDbHandler.cs b/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/RequestDbHandler.cs index c5c7620..1268419 100644 --- a/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/RequestDbHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/RequestDbHandler.cs @@ -1,24 +1,24 @@ -using IM_API.Domain.Events; -using IM_API.Interface.Services; -using MassTransit; - -namespace IM_API.Application.EventHandlers.GroupInviteActionUpdateHandler -{ - public class RequestDbHandler : IConsumer - { - private readonly IGroupService _groupService; - public RequestDbHandler(IGroupService groupService) - { - _groupService = groupService; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - if(@event.Action == Models.GroupInviteState.Passed) - { - await _groupService.MakeGroupRequestAsync(@event.UserId, @event.InviteUserId,@event.GroupId); - } - } - } -} +using IM_API.Domain.Events; +using IM_API.Interface.Services; +using MassTransit; + +namespace IM_API.Application.EventHandlers.GroupInviteActionUpdateHandler +{ + public class RequestDbHandler : IConsumer + { + private readonly IGroupService _groupService; + public RequestDbHandler(IGroupService groupService) + { + _groupService = groupService; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + if(@event.Action == Models.GroupInviteState.Passed) + { + await _groupService.MakeGroupRequestAsync(@event.UserId, @event.InviteUserId,@event.GroupId); + } + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/SignalRHandler.cs b/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/SignalRHandler.cs index 7c09dc1..a934a7b 100644 --- a/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/SignalRHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupInviteActionUpdateHandler/SignalRHandler.cs @@ -1,34 +1,34 @@ -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Hubs; -using IM_API.VOs.Group; -using MassTransit; -using Microsoft.AspNetCore.SignalR; - -namespace IM_API.Application.EventHandlers.GroupInviteActionUpdateHandler -{ - public class SignalRHandler : IConsumer - { - private IHubContext _hub; - public SignalRHandler(IHubContext hub) - { - _hub = hub; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - var msg = new HubResponse("Event", new GroupInviteActionUpdateVo - { - Action = @event.Action, - GroupId = @event.GroupId, - InvitedUserId = @event.UserId, - InviteUserId = @event.InviteUserId, - InviteId = @event.InviteId - }); - - await _hub.Clients.Users([@event.UserId.ToString(), @event.InviteUserId.ToString()]) - .SendAsync("ReceiveMessage",msg); - } - } -} +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Hubs; +using IM_API.VOs.Group; +using MassTransit; +using Microsoft.AspNetCore.SignalR; + +namespace IM_API.Application.EventHandlers.GroupInviteActionUpdateHandler +{ + public class SignalRHandler : IConsumer + { + private IHubContext _hub; + public SignalRHandler(IHubContext hub) + { + _hub = hub; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + var msg = new HubResponse("Event", new GroupInviteActionUpdateVo + { + Action = @event.Action, + GroupId = @event.GroupId, + InvitedUserId = @event.UserId, + InviteUserId = @event.InviteUserId, + InviteId = @event.InviteId + }); + + await _hub.Clients.Users([@event.UserId.ToString(), @event.InviteUserId.ToString()]) + .SendAsync("ReceiveMessage",msg); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupInviteHandler/GroupInviteSignalRHandler.cs b/backend/IM_API/Application/EventHandlers/GroupInviteHandler/GroupInviteSignalRHandler.cs index fc49076..f7c2e2f 100644 --- a/backend/IM_API/Application/EventHandlers/GroupInviteHandler/GroupInviteSignalRHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupInviteHandler/GroupInviteSignalRHandler.cs @@ -1,26 +1,26 @@ -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Hubs; -using IM_API.VOs.Group; -using MassTransit; -using Microsoft.AspNetCore.SignalR; - -namespace IM_API.Application.EventHandlers.GroupInviteHandler -{ - public class GroupInviteSignalRHandler : IConsumer - { - private readonly IHubContext _hub; - public GroupInviteSignalRHandler(IHubContext hub) - { - _hub = hub; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - var list = @event.Ids.Select(id => id.ToString()).ToArray(); - var msg = new HubResponse("Event", new GroupInviteVo { GroupId = @event.GroupId, UserId = @event.UserId }); - await _hub.Clients.Users(list).SendAsync("ReceiveMessage", msg); - } - } -} +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Hubs; +using IM_API.VOs.Group; +using MassTransit; +using Microsoft.AspNetCore.SignalR; + +namespace IM_API.Application.EventHandlers.GroupInviteHandler +{ + public class GroupInviteSignalRHandler : IConsumer + { + private readonly IHubContext _hub; + public GroupInviteSignalRHandler(IHubContext hub) + { + _hub = hub; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + var list = @event.Ids.Select(id => id.ToString()).ToArray(); + var msg = new HubResponse("Event", new GroupInviteVo { GroupId = @event.GroupId, UserId = @event.UserId }); + await _hub.Clients.Users(list).SendAsync("ReceiveMessage", msg); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinConversationHandler.cs b/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinConversationHandler.cs index 6992475..4e928f2 100644 --- a/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinConversationHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinConversationHandler.cs @@ -1,21 +1,21 @@ -using IM_API.Domain.Events; -using IM_API.Interface.Services; -using MassTransit; - -namespace IM_API.Application.EventHandlers.GroupJoinHandler -{ - public class GroupJoinConversationHandler : IConsumer - { - private IConversationService _conversationService; - public GroupJoinConversationHandler(IConversationService conversationService) - { - _conversationService = conversationService; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - await _conversationService.MakeConversationAsync(@event.UserId, @event.GroupId, Models.ChatType.GROUP); - } - } -} +using IM_API.Domain.Events; +using IM_API.Interface.Services; +using MassTransit; + +namespace IM_API.Application.EventHandlers.GroupJoinHandler +{ + public class GroupJoinConversationHandler : IConsumer + { + private IConversationService _conversationService; + public GroupJoinConversationHandler(IConversationService conversationService) + { + _conversationService = conversationService; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + await _conversationService.MakeConversationAsync(@event.UserId, @event.GroupId, Models.ChatType.GROUP); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinDbHandler.cs b/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinDbHandler.cs index a4ba4d2..7bfaccb 100644 --- a/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinDbHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinDbHandler.cs @@ -1,22 +1,22 @@ -using IM_API.Domain.Events; -using IM_API.Interface.Services; -using MassTransit; - -namespace IM_API.Application.EventHandlers.GroupJoinHandler -{ - public class GroupJoinDbHandler : IConsumer - { - private readonly IGroupService _groupService; - public GroupJoinDbHandler(IGroupService groupService) - { - _groupService = groupService; - } - - public async Task Consume(ConsumeContext context) - { - await _groupService.MakeGroupMemberAsync(context.Message.UserId, - context.Message.GroupId, context.Message.IsCreated ? - Models.GroupMemberRole.Master : Models.GroupMemberRole.Normal); - } - } -} +using IM_API.Domain.Events; +using IM_API.Interface.Services; +using MassTransit; + +namespace IM_API.Application.EventHandlers.GroupJoinHandler +{ + public class GroupJoinDbHandler : IConsumer + { + private readonly IGroupService _groupService; + public GroupJoinDbHandler(IGroupService groupService) + { + _groupService = groupService; + } + + public async Task Consume(ConsumeContext context) + { + await _groupService.MakeGroupMemberAsync(context.Message.UserId, + context.Message.GroupId, context.Message.IsCreated ? + Models.GroupMemberRole.Master : Models.GroupMemberRole.Normal); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinSignalrHandler.cs b/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinSignalrHandler.cs index deb7493..05a772d 100644 --- a/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinSignalrHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupJoinHandler/GroupJoinSignalrHandler.cs @@ -1,45 +1,45 @@ -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Hubs; -using IM_API.Tools; -using IM_API.VOs.Group; -using MassTransit; -using Microsoft.AspNetCore.SignalR; -using StackExchange.Redis; - -namespace IM_API.Application.EventHandlers.GroupJoinHandler -{ - public class GroupJoinSignalrHandler : IConsumer - { - private readonly IHubContext _hub; - private readonly IDatabase _redis; - public GroupJoinSignalrHandler(IHubContext hub, IConnectionMultiplexer connectionMultiplexer) - { - _hub = hub; - _redis = connectionMultiplexer.GetDatabase(); - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - string stramKey = StreamKeyBuilder.Group(@event.GroupId); - //将用户加入群组通知 - var list = await _redis.SetMembersAsync(RedisKeys.GetConnectionIdKey(@event.UserId.ToString())); - if(list != null && list.Length > 0) - { - var tasks = list.Select(connectionId => - _hub.Groups.AddToGroupAsync(connectionId!, stramKey) - ).ToList(); - - await Task.WhenAll(tasks); - } - //发送通知给群成员 - var msg = new GroupJoinVo - { - GroupId = @event.GroupId, - UserId = @event.UserId - }; - await _hub.Clients.Group(stramKey).SendAsync("ReceiveMessage",new HubResponse("Event",msg)); - } - } -} +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Hubs; +using IM_API.Tools; +using IM_API.VOs.Group; +using MassTransit; +using Microsoft.AspNetCore.SignalR; +using StackExchange.Redis; + +namespace IM_API.Application.EventHandlers.GroupJoinHandler +{ + public class GroupJoinSignalrHandler : IConsumer + { + private readonly IHubContext _hub; + private readonly IDatabase _redis; + public GroupJoinSignalrHandler(IHubContext hub, IConnectionMultiplexer connectionMultiplexer) + { + _hub = hub; + _redis = connectionMultiplexer.GetDatabase(); + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + string stramKey = StreamKeyBuilder.Group(@event.GroupId); + //将用户加入群组通知 + var list = await _redis.SetMembersAsync(RedisKeys.GetConnectionIdKey(@event.UserId.ToString())); + if(list != null && list.Length > 0) + { + var tasks = list.Select(connectionId => + _hub.Groups.AddToGroupAsync(connectionId!, stramKey) + ).ToList(); + + await Task.WhenAll(tasks); + } + //发送通知给群成员 + var msg = new GroupJoinVo + { + GroupId = @event.GroupId, + UserId = @event.UserId + }; + await _hub.Clients.Group(stramKey).SendAsync("ReceiveMessage",new HubResponse("Event",msg)); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupRequestHandler/GroupRequestSignalRHandler.cs b/backend/IM_API/Application/EventHandlers/GroupRequestHandler/GroupRequestSignalRHandler.cs index 69f0351..29d0454 100644 --- a/backend/IM_API/Application/EventHandlers/GroupRequestHandler/GroupRequestSignalRHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupRequestHandler/GroupRequestSignalRHandler.cs @@ -1,17 +1,17 @@ -using IM_API.Domain.Events; -using IM_API.Hubs; -using MassTransit; -using Microsoft.AspNetCore.SignalR; - -namespace IM_API.Application.EventHandlers.GroupRequestHandler -{ - public class GroupRequestSignalRHandler(IHubContext hubContext) : IConsumer - { - private readonly IHubContext _hub = hubContext; - - public async Task Consume(ConsumeContext context) - { - - } - } -} +using IM_API.Domain.Events; +using IM_API.Hubs; +using MassTransit; +using Microsoft.AspNetCore.SignalR; + +namespace IM_API.Application.EventHandlers.GroupRequestHandler +{ + public class GroupRequestSignalRHandler(IHubContext hubContext) : IConsumer + { + private readonly IHubContext _hub = hubContext; + + public async Task Consume(ConsumeContext context) + { + + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupRequestHandler/NextEventHandler.cs b/backend/IM_API/Application/EventHandlers/GroupRequestHandler/NextEventHandler.cs index 8e19129..bd9ee8f 100644 --- a/backend/IM_API/Application/EventHandlers/GroupRequestHandler/NextEventHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupRequestHandler/NextEventHandler.cs @@ -1,31 +1,31 @@ -using IM_API.Domain.Events; -using MassTransit; - -namespace IM_API.Application.EventHandlers.GroupRequestHandler -{ - public class NextEventHandler : IConsumer - { - private readonly IPublishEndpoint _endpoint; - public NextEventHandler(IPublishEndpoint endpoint) - { - _endpoint = endpoint; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - if(@event.Action == Models.GroupRequestState.Passed) - { - await _endpoint.Publish(new GroupJoinEvent - { - AggregateId = @event.AggregateId, - OccurredAt = @event.OccurredAt, - EventId = Guid.NewGuid(), - GroupId = @event.GroupId, - OperatorId = @event.OperatorId, - UserId = @event.UserId - }); - } - } - } -} +using IM_API.Domain.Events; +using MassTransit; + +namespace IM_API.Application.EventHandlers.GroupRequestHandler +{ + public class NextEventHandler : IConsumer + { + private readonly IPublishEndpoint _endpoint; + public NextEventHandler(IPublishEndpoint endpoint) + { + _endpoint = endpoint; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + if(@event.Action == Models.GroupRequestState.Passed) + { + await _endpoint.Publish(new GroupJoinEvent + { + AggregateId = @event.AggregateId, + OccurredAt = @event.OccurredAt, + EventId = Guid.NewGuid(), + GroupId = @event.GroupId, + OperatorId = @event.OperatorId, + UserId = @event.UserId + }); + } + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/NextEventHandler.cs b/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/NextEventHandler.cs index 4bbcb8e..6dc49e7 100644 --- a/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/NextEventHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/NextEventHandler.cs @@ -1,31 +1,31 @@ -using IM_API.Domain.Events; -using MassTransit; - -namespace IM_API.Application.EventHandlers.GroupRequestUpdateHandler -{ - public class NextEventHandler : IConsumer - { - private readonly IPublishEndpoint _endpoint; - public NextEventHandler(IPublishEndpoint endpoint) - { - _endpoint = endpoint; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - if(@event.Action == Models.GroupRequestState.Passed) - { - await _endpoint.Publish(new GroupJoinEvent - { - AggregateId = @event.AggregateId, - OccurredAt = @event.OccurredAt, - EventId = Guid.NewGuid(), - GroupId = @event.GroupId, - OperatorId = @event.OperatorId, - UserId = @event.UserId - }); - } - } - } -} +using IM_API.Domain.Events; +using MassTransit; + +namespace IM_API.Application.EventHandlers.GroupRequestUpdateHandler +{ + public class NextEventHandler : IConsumer + { + private readonly IPublishEndpoint _endpoint; + public NextEventHandler(IPublishEndpoint endpoint) + { + _endpoint = endpoint; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + if(@event.Action == Models.GroupRequestState.Passed) + { + await _endpoint.Publish(new GroupJoinEvent + { + AggregateId = @event.AggregateId, + OccurredAt = @event.OccurredAt, + EventId = Guid.NewGuid(), + GroupId = @event.GroupId, + OperatorId = @event.OperatorId, + UserId = @event.UserId + }); + } + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/RequestUpdateSignalrHandler.cs b/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/RequestUpdateSignalrHandler.cs index 3692545..3b4e20a 100644 --- a/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/RequestUpdateSignalrHandler.cs +++ b/backend/IM_API/Application/EventHandlers/GroupRequestUpdateHandler/RequestUpdateSignalrHandler.cs @@ -1,29 +1,29 @@ -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Hubs; -using IM_API.VOs.Group; -using MassTransit; -using Microsoft.AspNetCore.SignalR; - -namespace IM_API.Application.EventHandlers.GroupRequestUpdateHandler -{ - public class RequestUpdateSignalrHandler : IConsumer - { - private readonly IHubContext _hub; - public RequestUpdateSignalrHandler(IHubContext hub) - { - _hub = hub; - } - - public async Task Consume(ConsumeContext context) - { - var msg = new HubResponse("Event", new GroupRequestUpdateVo - { - GroupId = context.Message.GroupId, - RequestId = context.Message.RequestId, - UserId = context.Message.UserId - }); - await _hub.Clients.User(context.Message.UserId.ToString()).SendAsync("ReceiveMessage", msg); - } - } -} +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Hubs; +using IM_API.VOs.Group; +using MassTransit; +using Microsoft.AspNetCore.SignalR; + +namespace IM_API.Application.EventHandlers.GroupRequestUpdateHandler +{ + public class RequestUpdateSignalrHandler : IConsumer + { + private readonly IHubContext _hub; + public RequestUpdateSignalrHandler(IHubContext hub) + { + _hub = hub; + } + + public async Task Consume(ConsumeContext context) + { + var msg = new HubResponse("Event", new GroupRequestUpdateVo + { + GroupId = context.Message.GroupId, + RequestId = context.Message.RequestId, + UserId = context.Message.UserId + }); + await _hub.Clients.User(context.Message.UserId.ToString()).SendAsync("ReceiveMessage", msg); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/ConversationEventHandler.cs b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/ConversationEventHandler.cs index 60c18da..9a51daf 100644 --- a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/ConversationEventHandler.cs +++ b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/ConversationEventHandler.cs @@ -1,66 +1,66 @@ -using AutoMapper; -using IM_API.Application.Interfaces; -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Services; -using IM_API.Tools; -using MassTransit; -using Microsoft.EntityFrameworkCore; -using Newtonsoft.Json; - -namespace IM_API.Application.EventHandlers.MessageCreatedHandler -{ - public class ConversationEventHandler : IConsumer - { - private readonly IConversationService _conversationService; - private readonly ILogger _logger; - private readonly IUserService _userSerivce; - private readonly IGroupService _groupService; - public ConversationEventHandler( - IConversationService conversationService, - ILogger logger, - IUserService userService, - IGroupService groupService - ) - { - _conversationService = conversationService; - _logger = logger; - _userSerivce = userService; - _groupService = groupService; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - if (@event.ChatType == ChatType.GROUP) - { - var userinfo = await _userSerivce.GetUserInfoAsync(@event.MsgSenderId); - await _groupService.UpdateGroupConversationAsync(new Dtos.Group.GroupUpdateConversationDto - { - GroupId = @event.MsgRecipientId, - LastMessage = @event.MessageContent, - LastSenderName = userinfo.NickName, - LastUpdateTime = @event.MessageCreated, - MaxSequenceId = @event.SequenceId - }); - } - else - { - await _conversationService.UpdateConversationAfterSentAsync(new Dtos.Conversation.UpdateConversationDto - { - LastMessage = @event.MessageContent, - LastSequenceId = @event.SequenceId, - ReceiptId = @event.MsgRecipientId, - SenderId = @event.MsgSenderId, - StreamKey = @event.StreamKey, - DateTime = @event.MessageCreated - }); - } - - } - - } -} +using AutoMapper; +using IM_API.Application.Interfaces; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Services; +using IM_API.Tools; +using MassTransit; +using Microsoft.EntityFrameworkCore; +using Newtonsoft.Json; + +namespace IM_API.Application.EventHandlers.MessageCreatedHandler +{ + public class ConversationEventHandler : IConsumer + { + private readonly IConversationService _conversationService; + private readonly ILogger _logger; + private readonly IUserService _userSerivce; + private readonly IGroupService _groupService; + public ConversationEventHandler( + IConversationService conversationService, + ILogger logger, + IUserService userService, + IGroupService groupService + ) + { + _conversationService = conversationService; + _logger = logger; + _userSerivce = userService; + _groupService = groupService; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + if (@event.ChatType == ChatType.GROUP) + { + var userinfo = await _userSerivce.GetUserInfoAsync(@event.MsgSenderId); + await _groupService.UpdateGroupConversationAsync(new Dtos.Group.GroupUpdateConversationDto + { + GroupId = @event.MsgRecipientId, + LastMessage = @event.MessageContent, + LastSenderName = userinfo.NickName, + LastUpdateTime = @event.MessageCreated, + MaxSequenceId = @event.SequenceId + }); + } + else + { + await _conversationService.UpdateConversationAfterSentAsync(new Dtos.Conversation.UpdateConversationDto + { + LastMessage = @event.MessageContent, + LastSequenceId = @event.SequenceId, + ReceiptId = @event.MsgRecipientId, + SenderId = @event.MsgSenderId, + StreamKey = @event.StreamKey, + DateTime = @event.MessageCreated + }); + } + + } + + } +} diff --git a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/MessageCreatedDbHandler.cs b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/MessageCreatedDbHandler.cs index d926a81..ee1d19e 100644 --- a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/MessageCreatedDbHandler.cs +++ b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/MessageCreatedDbHandler.cs @@ -1,26 +1,26 @@ -using IM_API.Domain.Events; -using MassTransit; -using IM_API.Interface.Services; -using AutoMapper; -using IM_API.Models; - -namespace IM_API.Application.EventHandlers.MessageCreatedHandler -{ - public class MessageCreatedDbHandler : IConsumer - { - private readonly IMessageSevice _messageService; - public readonly IMapper _mapper; - public MessageCreatedDbHandler(IMessageSevice messageSevice, IMapper mapper) - { - _messageService = messageSevice; - _mapper = mapper; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - var msg = _mapper.Map(@event); - await _messageService.MakeMessageAsync(msg); - } - } -} +using IM_API.Domain.Events; +using MassTransit; +using IM_API.Interface.Services; +using AutoMapper; +using IM_API.Models; + +namespace IM_API.Application.EventHandlers.MessageCreatedHandler +{ + public class MessageCreatedDbHandler : IConsumer + { + private readonly IMessageSevice _messageService; + public readonly IMapper _mapper; + public MessageCreatedDbHandler(IMessageSevice messageSevice, IMapper mapper) + { + _messageService = messageSevice; + _mapper = mapper; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + var msg = _mapper.Map(@event); + await _messageService.MakeMessageAsync(msg); + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs index 8166f2f..564c3f9 100644 --- a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs +++ b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs @@ -1,48 +1,48 @@ -using AutoMapper; -using IM_API.Application.Interfaces; -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Hubs; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using IM_API.VOs.Message; -using MassTransit; -using Microsoft.AspNetCore.SignalR; - -namespace IM_API.Application.EventHandlers.MessageCreatedHandler -{ - public class SignalREventHandler : IConsumer - { - private readonly IHubContext _hub; - private readonly IMapper _mapper; - private readonly IUserService _userService; - public SignalREventHandler(IHubContext hub, IMapper mapper,IUserService userService) - { - _hub = hub; - _mapper = mapper; - _userService = userService; - } - - public async Task Consume(ConsumeContext context) - { - Console.ForegroundColor = ConsoleColor.Red; - var @event = context.Message; - try - { - var entity = _mapper.Map(@event); - var messageBaseVo = _mapper.Map(entity); - var senderinfo = await _userService.GetUserInfoAsync(@event.MsgSenderId); - messageBaseVo.SenderName = senderinfo.NickName; - messageBaseVo.SenderAvatar = senderinfo.Avatar ?? ""; - await _hub.Clients.Group(@event.StreamKey).SendAsync("ReceiveMessage", new HubResponse("Event", messageBaseVo)); - } - catch (Exception ex) - { - Console.WriteLine($"[SignalR] 发送失败: {ex.Message}"); - Console.ResetColor(); - throw; - } - } - } -} +using AutoMapper; +using IM_API.Application.Interfaces; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Hubs; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using IM_API.VOs.Message; +using MassTransit; +using Microsoft.AspNetCore.SignalR; + +namespace IM_API.Application.EventHandlers.MessageCreatedHandler +{ + public class SignalREventHandler : IConsumer + { + private readonly IHubContext _hub; + private readonly IMapper _mapper; + private readonly IUserService _userService; + public SignalREventHandler(IHubContext hub, IMapper mapper,IUserService userService) + { + _hub = hub; + _mapper = mapper; + _userService = userService; + } + + public async Task Consume(ConsumeContext context) + { + Console.ForegroundColor = ConsoleColor.Red; + var @event = context.Message; + try + { + var entity = _mapper.Map(@event); + var messageBaseVo = _mapper.Map(entity); + var senderinfo = await _userService.GetUserInfoAsync(@event.MsgSenderId); + messageBaseVo.SenderName = senderinfo.NickName; + messageBaseVo.SenderAvatar = senderinfo.Avatar ?? ""; + await _hub.Clients.Group(@event.StreamKey).SendAsync("ReceiveMessage", new HubResponse("Event", messageBaseVo)); + } + catch (Exception ex) + { + Console.WriteLine($"[SignalR] 发送失败: {ex.Message}"); + Console.ResetColor(); + throw; + } + } + } +} diff --git a/backend/IM_API/Application/EventHandlers/RequestFriendHandler/RequestFriendSignalRHandler.cs b/backend/IM_API/Application/EventHandlers/RequestFriendHandler/RequestFriendSignalRHandler.cs index e39be9d..743767a 100644 --- a/backend/IM_API/Application/EventHandlers/RequestFriendHandler/RequestFriendSignalRHandler.cs +++ b/backend/IM_API/Application/EventHandlers/RequestFriendHandler/RequestFriendSignalRHandler.cs @@ -1,37 +1,37 @@ -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Dtos.Friend; -using IM_API.Hubs; -using IM_API.Interface.Services; -using MassTransit; -using Microsoft.AspNetCore.SignalR; - -namespace IM_API.Application.EventHandlers.RequestFriendHandler -{ - public class RequestFriendSignalRHandler:IConsumer - { - private readonly IHubContext _hub; - private readonly IUserService _userService; - public RequestFriendSignalRHandler(IHubContext hubContext, IUserService userService) - { - _hub = hubContext; - _userService = userService; - } - - public async Task Consume(ConsumeContext context) - { - var @event = context.Message; - var userInfo = await _userService.GetUserInfoAsync(@event.FromUserId); - var res = new HubResponse("Event", new FriendRequestResDto() - { - RequestUser = @event.FromUserId, - ResponseUser = @event.ToUserId, - Created = DateTime.UtcNow, - Description = @event.Description, - Avatar = userInfo.Avatar, - NickName = userInfo.NickName - }); - await _hub.Clients.User(@event.ToUserId.ToString()).SendAsync("ReceiveMessage", res); - } - } -} +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Dtos.Friend; +using IM_API.Hubs; +using IM_API.Interface.Services; +using MassTransit; +using Microsoft.AspNetCore.SignalR; + +namespace IM_API.Application.EventHandlers.RequestFriendHandler +{ + public class RequestFriendSignalRHandler:IConsumer + { + private readonly IHubContext _hub; + private readonly IUserService _userService; + public RequestFriendSignalRHandler(IHubContext hubContext, IUserService userService) + { + _hub = hubContext; + _userService = userService; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + var userInfo = await _userService.GetUserInfoAsync(@event.FromUserId); + var res = new HubResponse("Event", new FriendRequestResDto() + { + RequestUser = @event.FromUserId, + ResponseUser = @event.ToUserId, + Created = DateTime.UtcNow, + Description = @event.Description, + Avatar = userInfo.Avatar, + NickName = userInfo.NickName + }); + await _hub.Clients.User(@event.ToUserId.ToString()).SendAsync("ReceiveMessage", res); + } + } +} diff --git a/backend/IM_API/Application/Interfaces/IEventBus.cs b/backend/IM_API/Application/Interfaces/IEventBus.cs index a2d67eb..839c9e4 100644 --- a/backend/IM_API/Application/Interfaces/IEventBus.cs +++ b/backend/IM_API/Application/Interfaces/IEventBus.cs @@ -1,9 +1,9 @@ -using IM_API.Domain.Interfaces; - -namespace IM_API.Application.Interfaces -{ - public interface IEventBus - { - Task PublishAsync(TEvent @event) where TEvent : IEvent; - } -} +using IM_API.Domain.Interfaces; + +namespace IM_API.Application.Interfaces +{ + public interface IEventBus + { + Task PublishAsync(TEvent @event) where TEvent : IEvent; + } +} diff --git a/backend/IM_API/Application/Interfaces/IEventHandler.cs b/backend/IM_API/Application/Interfaces/IEventHandler.cs index 7c6eb47..d959ea4 100644 --- a/backend/IM_API/Application/Interfaces/IEventHandler.cs +++ b/backend/IM_API/Application/Interfaces/IEventHandler.cs @@ -1,9 +1,9 @@ -using IM_API.Domain.Interfaces; - -namespace IM_API.Application.Interfaces -{ - public interface IEventHandler where TEvent : IEvent - { - Task Handle(TEvent @event); - } -} +using IM_API.Domain.Interfaces; + +namespace IM_API.Application.Interfaces +{ + public interface IEventHandler where TEvent : IEvent + { + Task Handle(TEvent @event); + } +} diff --git a/backend/IM_API/Configs/MQConfig.cs b/backend/IM_API/Configs/MQConfig.cs index bcac5d6..1527f81 100644 --- a/backend/IM_API/Configs/MQConfig.cs +++ b/backend/IM_API/Configs/MQConfig.cs @@ -1,65 +1,65 @@ -using AutoMapper; -using IM_API.Application.EventHandlers.FriendAddHandler; -using IM_API.Application.EventHandlers.GroupInviteActionUpdateHandler; -using IM_API.Application.EventHandlers.GroupInviteHandler; -using IM_API.Application.EventHandlers.GroupJoinHandler; -using IM_API.Application.EventHandlers.GroupRequestHandler; -using IM_API.Application.EventHandlers.GroupRequestUpdateHandler; -using IM_API.Application.EventHandlers.MessageCreatedHandler; -using IM_API.Application.EventHandlers.RequestFriendHandler; -using IM_API.Configs.Options; -using IM_API.Domain.Events; -using MassTransit; -using MySqlConnector; - -namespace IM_API.Configs -{ - public static class MQConfig - { - public static IServiceCollection AddRabbitMQ(this IServiceCollection services, RabbitMQOptions options) - { - services.AddMassTransit(x => - { - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.AddConsumer(); - x.UsingRabbitMq((ctx,cfg) => - { - cfg.Host(options.Host, "/", h => - { - h.Username(options.Username); - h.Password(options.Password); - }); - cfg.ConfigureEndpoints(ctx); - cfg.UseMessageRetry(r => - { - r.Handle(); - r.Handle(); - r.Ignore(); - r.Exponential(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(2)); - }); - cfg.ConfigureEndpoints(ctx); - }); - }); - - - return services; - } - } - - -} +using AutoMapper; +using IM_API.Application.EventHandlers.FriendAddHandler; +using IM_API.Application.EventHandlers.GroupInviteActionUpdateHandler; +using IM_API.Application.EventHandlers.GroupInviteHandler; +using IM_API.Application.EventHandlers.GroupJoinHandler; +using IM_API.Application.EventHandlers.GroupRequestHandler; +using IM_API.Application.EventHandlers.GroupRequestUpdateHandler; +using IM_API.Application.EventHandlers.MessageCreatedHandler; +using IM_API.Application.EventHandlers.RequestFriendHandler; +using IM_API.Configs.Options; +using IM_API.Domain.Events; +using MassTransit; +using MySqlConnector; + +namespace IM_API.Configs +{ + public static class MQConfig + { + public static IServiceCollection AddRabbitMQ(this IServiceCollection services, RabbitMQOptions options) + { + services.AddMassTransit(x => + { + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.AddConsumer(); + x.UsingRabbitMq((ctx,cfg) => + { + cfg.Host(options.Host, "/", h => + { + h.Username(options.Username); + h.Password(options.Password); + }); + cfg.ConfigureEndpoints(ctx); + cfg.UseMessageRetry(r => + { + r.Handle(); + r.Handle(); + r.Ignore(); + r.Exponential(5, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(2)); + }); + cfg.ConfigureEndpoints(ctx); + }); + }); + + + return services; + } + } + + +} diff --git a/backend/IM_API/Configs/MapperConfig.cs b/backend/IM_API/Configs/MapperConfig.cs index 9ba80cc..def0ff5 100644 --- a/backend/IM_API/Configs/MapperConfig.cs +++ b/backend/IM_API/Configs/MapperConfig.cs @@ -1,176 +1,176 @@ -using AutoMapper; -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Dtos.Auth; -using IM_API.Dtos.Friend; -using IM_API.Dtos.Group; -using IM_API.Dtos.User; -using IM_API.Models; -using IM_API.Tools; -using IM_API.VOs.Conversation; -using IM_API.VOs.Message; - -namespace IM_API.Configs -{ - public class MapperConfig:Profile - { - public MapperConfig() - { - CreateMap(); - //用户信息更新模型转换 - CreateMap() - .ForMember(dest => dest.Updated,opt => opt.MapFrom(src => DateTime.Now)) - .ForAllMembers(opts => opts.Condition((src,dest,srcMember) => srcMember != null)); - //用户注册模型转换 - CreateMap() - .ForMember(dest => dest.Username,opt => opt.MapFrom(src => src.Username)) - .ForMember(dest => dest.Password,opt => opt.MapFrom(src => src.Password)) - .ForMember(dest => dest.Avatar,opt => opt.MapFrom(src => "https://ts1.tc.mm.bing.net/th/id/OIP-C.dl0WpkTP6E2J4FnhDC_jHwAAAA?rs=1&pid=ImgDetMain&o=7&rm=3")) - .ForMember(dest => dest.StatusEnum,opt => opt.MapFrom(src => UserStatus.Normal)) - .ForMember(dest => dest.OnlineStatusEnum,opt => opt.MapFrom(src => UserOnlineStatus.Offline)) - .ForMember(dest => dest.NickName,opt => opt.MapFrom(src => src.NickName??"默认用户")) - .ForMember(dest => dest.Created,opt => opt.MapFrom(src => DateTime.Now)) - .ForMember(dest => dest.IsDeleted,opt => opt.MapFrom(src => 0)) - ; - //好友信息模型转换 - CreateMap() - .ForMember(dest => dest.UserInfo, opt => opt.MapFrom(src => src.FriendNavigation)) - .ForMember(dest => dest.Avatar, opt => opt.MapFrom(src => src.FriendNavigation.Avatar)) - ; - //好友请求通过后新增好友关系 - CreateMap() - .ForMember(dest => dest.UserId , opt => opt.MapFrom(src => src.FromUserId)) - .ForMember(dest => dest.FriendId , opt => opt.MapFrom(src => src.ToUserId)) - .ForMember(dest => dest.StatusEnum , opt =>opt.MapFrom(src => FriendStatus.Pending)) - .ForMember(dest => dest.RemarkName , opt => opt.MapFrom(src => src.RemarkName)) - .ForMember(dest => dest.Created , opt => opt.MapFrom(src => DateTime.Now)) - ; - //发起好友请求转换请求对象 - CreateMap() - .ForMember(dest => dest.RequestUser , opt => opt.MapFrom(src => src.FromUserId)) - .ForMember(dest => dest.ResponseUser , opt => opt.MapFrom(src => src.ToUserId)) - .ForMember(dest => dest.Created , opt => opt.MapFrom(src => DateTime.Now)) - .ForMember(dest => dest.StateEnum , opt => opt.MapFrom(src => FriendRequestState.Pending)) - .ForMember(dest => dest.Description , opt => opt.MapFrom(src => src.Description)) - ; - - CreateMap() - .ForMember(dest => dest.ToUserId, opt => opt.MapFrom(src => src.ResponseUser)) - .ForMember(dest => dest.FromUserId, opt => opt.MapFrom(src => src.RequestUser)) - .ForMember(dest => dest.RemarkName, opt => opt.MapFrom(src => src.RemarkName)) - .ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description)) - ; - //消息模型转换 - CreateMap() - .ForMember(dest => dest.Type , opt => opt.MapFrom(src => src.MsgTypeEnum)) - .ForMember(dest => dest.MsgId , opt => opt.MapFrom(src => src.ClientMsgId)) - .ForMember(dest => dest.SenderId , opt => opt.MapFrom(src => src.Sender)) - .ForMember(dest => dest.ChatType , opt => opt.MapFrom(src => src.ChatTypeEnum)) - .ForMember(dest => dest.ReceiverId, opt => opt.MapFrom(src => src.Recipient)) - .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content)) - .ForMember(dest => dest.TimeStamp, opt => opt.MapFrom(src => src.Created)) - .ForMember(dest => dest.SequenceId, opt => opt.MapFrom(src => src.SequenceId)) - ; - CreateMap() - .ForMember(dest => dest.Sender, opt => opt.MapFrom(src => src.SenderId)) - .ForMember(dest => dest.ChatTypeEnum,opt => opt.MapFrom(src => src.ChatType)) - .ForMember(dest => dest.MsgTypeEnum, opt => opt.MapFrom(src => src.Type)) - .ForMember(dest => dest.Created, opt => opt.MapFrom(src => src.TimeStamp)) - .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content)) - .ForMember(dest => dest.Recipient, opt => opt.MapFrom(src => src.ReceiverId)) - .ForMember(dest => dest.StreamKey, opt => opt.Ignore() ) - .ForMember(dest => dest.StateEnum, opt => opt.MapFrom(src => MessageState.Sent)) - .ForMember(dest => dest.ChatType, opt => opt.Ignore()) - .ForMember(dest => dest.MsgType, opt => opt.Ignore()) - .ForMember(dest => dest.ClientMsgId, opt => opt.MapFrom(src => src.MsgId)) - ; - - //会话对象深拷贝 - CreateMap() - .ForMember(dest => dest.Id, opt => opt.Ignore()) - .ForMember(dest => dest.UserId, opt => opt.Ignore()) - .ForMember(dest => dest.TargetId, opt => opt.Ignore()) - .ForMember(dest => dest.ChatType, opt => opt.Ignore()) - .ForMember(dest => dest.StreamKey, opt => opt.Ignore()) - ; - - //消息对象转消息创建事件对象 - CreateMap() - .ForMember(dest => dest.MessageMsgType, opt => opt.MapFrom(src => src.MsgTypeEnum)) - .ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => src.ChatTypeEnum)) - .ForMember(dest => dest.MessageContent, opt => opt.MapFrom(src => src.Content)) - .ForMember(dest => dest.State, opt => opt.MapFrom(src => src.StateEnum)) - .ForMember(dest => dest.MessageCreated, opt => opt.MapFrom(src => src.Created)) - .ForMember(dest => dest.MsgRecipientId, opt => opt.MapFrom(src => src.Recipient)) - .ForMember(dest => dest.MsgSenderId, opt => opt.MapFrom(src => src.Sender)) - .ForMember(dest => dest.EventId, opt => opt.MapFrom(src => Guid.NewGuid())) - .ForMember(dest => dest.AggregateId, opt => opt.MapFrom(src => src.Sender.ToString())) - .ForMember(dest => dest.OccurredAt , opt => opt.MapFrom(src => DateTime.Now)) - .ForMember(dest => dest.OperatorId, opt => opt.MapFrom(src => src.Sender)) - .ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey)) - ; - - CreateMap() - .ForMember(dest => dest.SequenceId, opt => opt.MapFrom(src => src.SequenceId)) - .ForMember(dest => dest.ClientMsgId, opt => opt.MapFrom(src => src.ClientMsgId)) - .ForMember(dest => dest.StateEnum, opt => opt.MapFrom(src => src.State)) - .ForMember(dest => dest.ChatTypeEnum, opt => opt.MapFrom(src => src.ChatType)) - .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.MessageContent)) - .ForMember(dest => dest.Created, opt => opt.MapFrom(src => src.MessageCreated)) - .ForMember(dest => dest.MsgTypeEnum, opt => opt.MapFrom(src => src.MessageMsgType)) - .ForMember(dest => dest.Recipient, opt => opt.MapFrom(src => src.MsgRecipientId)) - .ForMember(dest => dest.Sender, opt => opt.MapFrom(src => src.MsgSenderId)) - .ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey)) - .ForMember(dest => dest.ChatType, opt => opt.Ignore()) - .ForMember(dest => dest.State, opt => opt.Ignore()) - .ForMember(dest => dest.MsgType, opt => opt.Ignore()); - - //消息发送事件转换会话对象 - CreateMap() - //.ForMember(dest => dest.LastReadMessageId, opt => opt.MapFrom(src => src.MessageId)) - .ForMember(dest => dest.LastMessage, opt => opt.MapFrom(src => src.MessageContent)) - .ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => src.ChatType)) - .ForMember(dest => dest.UserId, opt => opt.MapFrom(src => src.MsgSenderId)) - .ForMember(dest => dest.TargetId, opt => opt.MapFrom(src => src.MsgRecipientId)) - .ForMember(dest => dest.UnreadCount, opt => opt.MapFrom(src => 0)) - .ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey)) - .ForMember(dest => dest.LastMessageTime, opt => opt.MapFrom(src => DateTime.Now)) - ; - - //创建会话对象 - CreateMap() - .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id)) - .ForMember(dest => dest.LastMessage, opt => opt.MapFrom(src => src.LastMessage)) - .ForMember(dest => dest.LastSequenceId, opt => opt.MapFrom(src => src.LastReadSequenceId)) - .ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => src.ChatTypeEnum)) - .ForMember(dest => dest.DateTime, opt => opt.MapFrom(src => src.LastMessageTime)) - .ForMember(dest => dest.TargetId, opt => opt.MapFrom(src => src.TargetId)) - .ForMember(dest => dest.UnreadCount, opt => opt.MapFrom(src => src.UnreadCount)) - .ForMember(dest => dest.UserId, opt => opt.MapFrom(src => src.UserId)); - - CreateMap() - .ForMember(dest => dest.TargetAvatar, opt => opt.MapFrom(src => src.FriendNavigation.Avatar)) - .ForMember(dest => dest.TargetName, opt => opt.MapFrom(src => src.RemarkName)); - - CreateMap() - .ForMember(dest => dest.TargetAvatar, opt => opt.MapFrom(src => src.Avatar)) - .ForMember(dest => dest.TargetName, opt => opt.MapFrom(src => src.Name)); - - - //群模型转换 - CreateMap() - .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.StatusEnum)) - .ForMember(dest => dest.AllMembersBanned, opt => opt.MapFrom(src => src.AllMembersBannedEnum)) - .ForMember(dest => dest.Auhority, opt => opt.MapFrom(src => src.AuhorityEnum)); - - CreateMap() - .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name)) - .ForMember(dest => dest.Avatar, opt => opt.MapFrom(src => src.Avatar)) - .ForMember(dest => dest.Created, opt => opt.MapFrom(src => DateTime.Now)) - .ForMember(dest => dest.AllMembersBannedEnum, opt => opt.MapFrom(src => GroupAllMembersBanned.ALLOWED)) - .ForMember(dest => dest.AuhorityEnum, opt => opt.MapFrom(src => GroupAuhority.REQUIRE_CONSENT)) - .ForMember(dest => dest.StatusEnum, opt => opt.MapFrom(src => GroupStatus.Normal)) - ; - } - } -} +using AutoMapper; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Dtos.Auth; +using IM_API.Dtos.Friend; +using IM_API.Dtos.Group; +using IM_API.Dtos.User; +using IM_API.Models; +using IM_API.Tools; +using IM_API.VOs.Conversation; +using IM_API.VOs.Message; + +namespace IM_API.Configs +{ + public class MapperConfig:Profile + { + public MapperConfig() + { + CreateMap(); + //用户信息更新模型转换 + CreateMap() + .ForMember(dest => dest.Updated,opt => opt.MapFrom(src => DateTime.Now)) + .ForAllMembers(opts => opts.Condition((src,dest,srcMember) => srcMember != null)); + //用户注册模型转换 + CreateMap() + .ForMember(dest => dest.Username,opt => opt.MapFrom(src => src.Username)) + .ForMember(dest => dest.Password,opt => opt.MapFrom(src => src.Password)) + .ForMember(dest => dest.Avatar,opt => opt.MapFrom(src => "https://ts1.tc.mm.bing.net/th/id/OIP-C.dl0WpkTP6E2J4FnhDC_jHwAAAA?rs=1&pid=ImgDetMain&o=7&rm=3")) + .ForMember(dest => dest.StatusEnum,opt => opt.MapFrom(src => UserStatus.Normal)) + .ForMember(dest => dest.OnlineStatusEnum,opt => opt.MapFrom(src => UserOnlineStatus.Offline)) + .ForMember(dest => dest.NickName,opt => opt.MapFrom(src => src.NickName??"默认用户")) + .ForMember(dest => dest.Created,opt => opt.MapFrom(src => DateTime.Now)) + .ForMember(dest => dest.IsDeleted,opt => opt.MapFrom(src => 0)) + ; + //好友信息模型转换 + CreateMap() + .ForMember(dest => dest.UserInfo, opt => opt.MapFrom(src => src.FriendNavigation)) + .ForMember(dest => dest.Avatar, opt => opt.MapFrom(src => src.FriendNavigation.Avatar)) + ; + //好友请求通过后新增好友关系 + CreateMap() + .ForMember(dest => dest.UserId , opt => opt.MapFrom(src => src.FromUserId)) + .ForMember(dest => dest.FriendId , opt => opt.MapFrom(src => src.ToUserId)) + .ForMember(dest => dest.StatusEnum , opt =>opt.MapFrom(src => FriendStatus.Pending)) + .ForMember(dest => dest.RemarkName , opt => opt.MapFrom(src => src.RemarkName)) + .ForMember(dest => dest.Created , opt => opt.MapFrom(src => DateTime.Now)) + ; + //发起好友请求转换请求对象 + CreateMap() + .ForMember(dest => dest.RequestUser , opt => opt.MapFrom(src => src.FromUserId)) + .ForMember(dest => dest.ResponseUser , opt => opt.MapFrom(src => src.ToUserId)) + .ForMember(dest => dest.Created , opt => opt.MapFrom(src => DateTime.Now)) + .ForMember(dest => dest.StateEnum , opt => opt.MapFrom(src => FriendRequestState.Pending)) + .ForMember(dest => dest.Description , opt => opt.MapFrom(src => src.Description)) + ; + + CreateMap() + .ForMember(dest => dest.ToUserId, opt => opt.MapFrom(src => src.ResponseUser)) + .ForMember(dest => dest.FromUserId, opt => opt.MapFrom(src => src.RequestUser)) + .ForMember(dest => dest.RemarkName, opt => opt.MapFrom(src => src.RemarkName)) + .ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description)) + ; + //消息模型转换 + CreateMap() + .ForMember(dest => dest.Type , opt => opt.MapFrom(src => src.MsgTypeEnum)) + .ForMember(dest => dest.MsgId , opt => opt.MapFrom(src => src.ClientMsgId)) + .ForMember(dest => dest.SenderId , opt => opt.MapFrom(src => src.Sender)) + .ForMember(dest => dest.ChatType , opt => opt.MapFrom(src => src.ChatTypeEnum)) + .ForMember(dest => dest.ReceiverId, opt => opt.MapFrom(src => src.Recipient)) + .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content)) + .ForMember(dest => dest.TimeStamp, opt => opt.MapFrom(src => src.Created)) + .ForMember(dest => dest.SequenceId, opt => opt.MapFrom(src => src.SequenceId)) + ; + CreateMap() + .ForMember(dest => dest.Sender, opt => opt.MapFrom(src => src.SenderId)) + .ForMember(dest => dest.ChatTypeEnum,opt => opt.MapFrom(src => src.ChatType)) + .ForMember(dest => dest.MsgTypeEnum, opt => opt.MapFrom(src => src.Type)) + .ForMember(dest => dest.Created, opt => opt.MapFrom(src => src.TimeStamp)) + .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content)) + .ForMember(dest => dest.Recipient, opt => opt.MapFrom(src => src.ReceiverId)) + .ForMember(dest => dest.StreamKey, opt => opt.Ignore() ) + .ForMember(dest => dest.StateEnum, opt => opt.MapFrom(src => MessageState.Sent)) + .ForMember(dest => dest.ChatType, opt => opt.Ignore()) + .ForMember(dest => dest.MsgType, opt => opt.Ignore()) + .ForMember(dest => dest.ClientMsgId, opt => opt.MapFrom(src => src.MsgId)) + ; + + //会话对象深拷贝 + CreateMap() + .ForMember(dest => dest.Id, opt => opt.Ignore()) + .ForMember(dest => dest.UserId, opt => opt.Ignore()) + .ForMember(dest => dest.TargetId, opt => opt.Ignore()) + .ForMember(dest => dest.ChatType, opt => opt.Ignore()) + .ForMember(dest => dest.StreamKey, opt => opt.Ignore()) + ; + + //消息对象转消息创建事件对象 + CreateMap() + .ForMember(dest => dest.MessageMsgType, opt => opt.MapFrom(src => src.MsgTypeEnum)) + .ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => src.ChatTypeEnum)) + .ForMember(dest => dest.MessageContent, opt => opt.MapFrom(src => src.Content)) + .ForMember(dest => dest.State, opt => opt.MapFrom(src => src.StateEnum)) + .ForMember(dest => dest.MessageCreated, opt => opt.MapFrom(src => src.Created)) + .ForMember(dest => dest.MsgRecipientId, opt => opt.MapFrom(src => src.Recipient)) + .ForMember(dest => dest.MsgSenderId, opt => opt.MapFrom(src => src.Sender)) + .ForMember(dest => dest.EventId, opt => opt.MapFrom(src => Guid.NewGuid())) + .ForMember(dest => dest.AggregateId, opt => opt.MapFrom(src => src.Sender.ToString())) + .ForMember(dest => dest.OccurredAt , opt => opt.MapFrom(src => DateTime.Now)) + .ForMember(dest => dest.OperatorId, opt => opt.MapFrom(src => src.Sender)) + .ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey)) + ; + + CreateMap() + .ForMember(dest => dest.SequenceId, opt => opt.MapFrom(src => src.SequenceId)) + .ForMember(dest => dest.ClientMsgId, opt => opt.MapFrom(src => src.ClientMsgId)) + .ForMember(dest => dest.StateEnum, opt => opt.MapFrom(src => src.State)) + .ForMember(dest => dest.ChatTypeEnum, opt => opt.MapFrom(src => src.ChatType)) + .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.MessageContent)) + .ForMember(dest => dest.Created, opt => opt.MapFrom(src => src.MessageCreated)) + .ForMember(dest => dest.MsgTypeEnum, opt => opt.MapFrom(src => src.MessageMsgType)) + .ForMember(dest => dest.Recipient, opt => opt.MapFrom(src => src.MsgRecipientId)) + .ForMember(dest => dest.Sender, opt => opt.MapFrom(src => src.MsgSenderId)) + .ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey)) + .ForMember(dest => dest.ChatType, opt => opt.Ignore()) + .ForMember(dest => dest.State, opt => opt.Ignore()) + .ForMember(dest => dest.MsgType, opt => opt.Ignore()); + + //消息发送事件转换会话对象 + CreateMap() + //.ForMember(dest => dest.LastReadMessageId, opt => opt.MapFrom(src => src.MessageId)) + .ForMember(dest => dest.LastMessage, opt => opt.MapFrom(src => src.MessageContent)) + .ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => src.ChatType)) + .ForMember(dest => dest.UserId, opt => opt.MapFrom(src => src.MsgSenderId)) + .ForMember(dest => dest.TargetId, opt => opt.MapFrom(src => src.MsgRecipientId)) + .ForMember(dest => dest.UnreadCount, opt => opt.MapFrom(src => 0)) + .ForMember(dest => dest.StreamKey, opt => opt.MapFrom(src => src.StreamKey)) + .ForMember(dest => dest.LastMessageTime, opt => opt.MapFrom(src => DateTime.Now)) + ; + + //创建会话对象 + CreateMap() + .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id)) + .ForMember(dest => dest.LastMessage, opt => opt.MapFrom(src => src.LastMessage)) + .ForMember(dest => dest.LastSequenceId, opt => opt.MapFrom(src => src.LastReadSequenceId)) + .ForMember(dest => dest.ChatType, opt => opt.MapFrom(src => src.ChatTypeEnum)) + .ForMember(dest => dest.DateTime, opt => opt.MapFrom(src => src.LastMessageTime)) + .ForMember(dest => dest.TargetId, opt => opt.MapFrom(src => src.TargetId)) + .ForMember(dest => dest.UnreadCount, opt => opt.MapFrom(src => src.UnreadCount)) + .ForMember(dest => dest.UserId, opt => opt.MapFrom(src => src.UserId)); + + CreateMap() + .ForMember(dest => dest.TargetAvatar, opt => opt.MapFrom(src => src.FriendNavigation.Avatar)) + .ForMember(dest => dest.TargetName, opt => opt.MapFrom(src => src.RemarkName)); + + CreateMap() + .ForMember(dest => dest.TargetAvatar, opt => opt.MapFrom(src => src.Avatar)) + .ForMember(dest => dest.TargetName, opt => opt.MapFrom(src => src.Name)); + + + //群模型转换 + CreateMap() + .ForMember(dest => dest.Status, opt => opt.MapFrom(src => src.StatusEnum)) + .ForMember(dest => dest.AllMembersBanned, opt => opt.MapFrom(src => src.AllMembersBannedEnum)) + .ForMember(dest => dest.Auhority, opt => opt.MapFrom(src => src.AuhorityEnum)); + + CreateMap() + .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name)) + .ForMember(dest => dest.Avatar, opt => opt.MapFrom(src => src.Avatar)) + .ForMember(dest => dest.Created, opt => opt.MapFrom(src => DateTime.Now)) + .ForMember(dest => dest.AllMembersBannedEnum, opt => opt.MapFrom(src => GroupAllMembersBanned.ALLOWED)) + .ForMember(dest => dest.AuhorityEnum, opt => opt.MapFrom(src => GroupAuhority.REQUIRE_CONSENT)) + .ForMember(dest => dest.StatusEnum, opt => opt.MapFrom(src => GroupStatus.Normal)) + ; + } + } +} diff --git a/backend/IM_API/Configs/Options/ConnectionOptions.cs b/backend/IM_API/Configs/Options/ConnectionOptions.cs index 53e1d3b..ac733f8 100644 --- a/backend/IM_API/Configs/Options/ConnectionOptions.cs +++ b/backend/IM_API/Configs/Options/ConnectionOptions.cs @@ -1,8 +1,8 @@ -namespace IM_API.Configs.Options -{ - public class ConnectionOptions - { - public string DefaultConnection { get; set; } - public string Redis { get; set; } - } -} +namespace IM_API.Configs.Options +{ + public class ConnectionOptions + { + public string DefaultConnection { get; set; } + public string Redis { get; set; } + } +} diff --git a/backend/IM_API/Configs/Options/RabbitMQOptions.cs b/backend/IM_API/Configs/Options/RabbitMQOptions.cs index 045cb1d..5556a31 100644 --- a/backend/IM_API/Configs/Options/RabbitMQOptions.cs +++ b/backend/IM_API/Configs/Options/RabbitMQOptions.cs @@ -1,10 +1,10 @@ -namespace IM_API.Configs.Options -{ - public class RabbitMQOptions - { - public string Host { get; set; } - public int Port { get; set; } - public string Username { get; set; } - public string Password { get; set; } - } -} +namespace IM_API.Configs.Options +{ + public class RabbitMQOptions + { + public string Host { get; set; } + public int Port { get; set; } + public string Username { get; set; } + public string Password { get; set; } + } +} diff --git a/backend/IM_API/Configs/ServiceCollectionExtensions.cs b/backend/IM_API/Configs/ServiceCollectionExtensions.cs index 4823103..931a544 100644 --- a/backend/IM_API/Configs/ServiceCollectionExtensions.cs +++ b/backend/IM_API/Configs/ServiceCollectionExtensions.cs @@ -1,64 +1,64 @@ -using IM_API.Application.EventHandlers; -using IM_API.Application.Interfaces; -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Infrastructure.EventBus; -using IM_API.Interface.Services; -using IM_API.Services; -using IM_API.Tools; -using Microsoft.AspNetCore.Http.HttpResults; -using Microsoft.AspNetCore.Mvc; -using RedLockNet; -using RedLockNet.SERedis; -using RedLockNet.SERedis.Configuration; -using StackExchange.Redis; - -namespace IM_API.Configs -{ - public static class ServiceCollectionExtensions - { - public static IServiceCollection AddAllService(this IServiceCollection services, IConfiguration configuration) - { - - services.AddAutoMapper(typeof(MapperConfig)); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(sp => - { - var connection = sp.GetRequiredService(); - // 这里可以配置多个 Redis 节点提高安全性,单机运行传一个即可 - return RedLockFactory.Create(new List { new RedLockMultiplexer(connection) }); - }); - return services; - } - public static IServiceCollection AddModelValidation(this IServiceCollection services, IConfiguration configuration) - { - services.Configure(options => - { - options.InvalidModelStateResponseFactory = context => - { - var errors = context.ModelState - .Where(e => e.Value.Errors.Count > 0) - .Select(e => new - { - Field = e.Key, - Message = e.Value.Errors.First().ErrorMessage - }); - Console.WriteLine(errors); - return new BadRequestObjectResult(new BaseResponse(CodeDefine.PARAMETER_ERROR.Code, errors.First().Message)); - }; - }); - return services; - } - - } -} +using IM_API.Application.EventHandlers; +using IM_API.Application.Interfaces; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Infrastructure.EventBus; +using IM_API.Interface.Services; +using IM_API.Services; +using IM_API.Tools; +using Microsoft.AspNetCore.Http.HttpResults; +using Microsoft.AspNetCore.Mvc; +using RedLockNet; +using RedLockNet.SERedis; +using RedLockNet.SERedis.Configuration; +using StackExchange.Redis; + +namespace IM_API.Configs +{ + public static class ServiceCollectionExtensions + { + public static IServiceCollection AddAllService(this IServiceCollection services, IConfiguration configuration) + { + + services.AddAutoMapper(typeof(MapperConfig)); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddScoped(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(sp => + { + var connection = sp.GetRequiredService(); + // 这里可以配置多个 Redis 节点提高安全性,单机运行传一个即可 + return RedLockFactory.Create(new List { new RedLockMultiplexer(connection) }); + }); + return services; + } + public static IServiceCollection AddModelValidation(this IServiceCollection services, IConfiguration configuration) + { + services.Configure(options => + { + options.InvalidModelStateResponseFactory = context => + { + var errors = context.ModelState + .Where(e => e.Value.Errors.Count > 0) + .Select(e => new + { + Field = e.Key, + Message = e.Value.Errors.First().ErrorMessage + }); + Console.WriteLine(errors); + return new BadRequestObjectResult(new BaseResponse(CodeDefine.PARAMETER_ERROR.Code, errors.First().Message)); + }; + }); + return services; + } + + } +} diff --git a/backend/IM_API/Controllers/AuthController.cs b/backend/IM_API/Controllers/AuthController.cs index 5d17d89..44be0a1 100644 --- a/backend/IM_API/Controllers/AuthController.cs +++ b/backend/IM_API/Controllers/AuthController.cs @@ -1,82 +1,82 @@ -using AutoMapper; -using IM_API.Dtos; -using IM_API.Dtos.Auth; -using IM_API.Dtos.User; -using IM_API.Interface.Services; -using IM_API.Tools; -using IM_API.VOs.Auth; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Http.HttpResults; -using Microsoft.AspNetCore.Mvc; -using System.Diagnostics; - -namespace IM_API.Controllers -{ - [Route("api/[controller]/[action]")] - [ApiController] - public class AuthController : ControllerBase - { - private readonly ILogger _logger; - private readonly IAuthService _authService; - private readonly IUserService _userService; - private readonly IJWTService _jwtService; - private readonly IRefreshTokenService _refreshTokenService; - private readonly IConfiguration _configuration; - private IMapper _mapper; - public AuthController(ILogger logger, IAuthService authService, - IJWTService jwtService, IRefreshTokenService refreshTokenService, - IConfiguration configuration,IUserService userService, - IMapper mapper - ) - { - _logger = logger; - _authService = authService; - _jwtService = jwtService; - _refreshTokenService = refreshTokenService; - _configuration = configuration; - _userService = userService; - _mapper = mapper; - } - [HttpPost] - public async Task Login(LoginRequestDto dto) - { - Stopwatch sw = Stopwatch.StartNew(); - var user = await _authService.LoginAsync(dto); - _logger.LogInformation("服务耗时: {ms}ms", sw.ElapsedMilliseconds); - var userInfo = _mapper.Map(user); - _logger.LogInformation("序列化耗时: {ms}ms", sw.ElapsedMilliseconds); - //生成凭证 - (string token,DateTime expiresAt) = _jwtService.CreateAccessTokenForUser(user.Id,user.Username,"user"); - _logger.LogInformation("Token生成耗时: {ms}ms", sw.ElapsedMilliseconds); - //生成刷新凭证 - - string refreshToken = await _refreshTokenService.CreateRefreshTokenAsync(user.Id); - _logger.LogInformation("RefreshToken生成耗时: {ms}ms", sw.ElapsedMilliseconds); - var res = new BaseResponse(new LoginVo(userInfo,token,refreshToken, expiresAt)); - _logger.LogInformation("总耗时: {ms}ms", sw.ElapsedMilliseconds); - return Ok(res); - } - [HttpPost] - public async Task Register(RegisterRequestDto dto) - { - var userInfo = await _authService.RegisterAsync(dto); - var res = new BaseResponse(userInfo); - return Ok(res); - } - [HttpPost] - [ProducesResponseType(typeof(BaseResponse),StatusCodes.Status200OK)] - public async Task Refresh(RefreshDto dto) - { - (bool ok,int userId) = await _refreshTokenService.ValidateRefreshTokenAsync(dto.refreshToken); - if (!ok) - { - var err = new BaseResponse(CodeDefine.AUTH_FAILED); - return Unauthorized(err); - } - var userinfo = await _userService.GetUserInfoAsync(userId); - (string token,DateTime expiresAt) = _jwtService.CreateAccessTokenForUser(userinfo.Id,userinfo.Username,"user"); - var res = new BaseResponse(new LoginVo(userinfo,token, dto.refreshToken, expiresAt)); - return Ok(res); - } - } -} +using AutoMapper; +using IM_API.Dtos; +using IM_API.Dtos.Auth; +using IM_API.Dtos.User; +using IM_API.Interface.Services; +using IM_API.Tools; +using IM_API.VOs.Auth; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.HttpResults; +using Microsoft.AspNetCore.Mvc; +using System.Diagnostics; + +namespace IM_API.Controllers +{ + [Route("api/[controller]/[action]")] + [ApiController] + public class AuthController : ControllerBase + { + private readonly ILogger _logger; + private readonly IAuthService _authService; + private readonly IUserService _userService; + private readonly IJWTService _jwtService; + private readonly IRefreshTokenService _refreshTokenService; + private readonly IConfiguration _configuration; + private IMapper _mapper; + public AuthController(ILogger logger, IAuthService authService, + IJWTService jwtService, IRefreshTokenService refreshTokenService, + IConfiguration configuration,IUserService userService, + IMapper mapper + ) + { + _logger = logger; + _authService = authService; + _jwtService = jwtService; + _refreshTokenService = refreshTokenService; + _configuration = configuration; + _userService = userService; + _mapper = mapper; + } + [HttpPost] + public async Task Login(LoginRequestDto dto) + { + Stopwatch sw = Stopwatch.StartNew(); + var user = await _authService.LoginAsync(dto); + _logger.LogInformation("服务耗时: {ms}ms", sw.ElapsedMilliseconds); + var userInfo = _mapper.Map(user); + _logger.LogInformation("序列化耗时: {ms}ms", sw.ElapsedMilliseconds); + //生成凭证 + (string token,DateTime expiresAt) = _jwtService.CreateAccessTokenForUser(user.Id,user.Username,"user"); + _logger.LogInformation("Token生成耗时: {ms}ms", sw.ElapsedMilliseconds); + //生成刷新凭证 + + string refreshToken = await _refreshTokenService.CreateRefreshTokenAsync(user.Id); + _logger.LogInformation("RefreshToken生成耗时: {ms}ms", sw.ElapsedMilliseconds); + var res = new BaseResponse(new LoginVo(userInfo,token,refreshToken, expiresAt)); + _logger.LogInformation("总耗时: {ms}ms", sw.ElapsedMilliseconds); + return Ok(res); + } + [HttpPost] + public async Task Register(RegisterRequestDto dto) + { + var userInfo = await _authService.RegisterAsync(dto); + var res = new BaseResponse(userInfo); + return Ok(res); + } + [HttpPost] + [ProducesResponseType(typeof(BaseResponse),StatusCodes.Status200OK)] + public async Task Refresh(RefreshDto dto) + { + (bool ok,int userId) = await _refreshTokenService.ValidateRefreshTokenAsync(dto.refreshToken); + if (!ok) + { + var err = new BaseResponse(CodeDefine.AUTH_FAILED); + return Unauthorized(err); + } + var userinfo = await _userService.GetUserInfoAsync(userId); + (string token,DateTime expiresAt) = _jwtService.CreateAccessTokenForUser(userinfo.Id,userinfo.Username,"user"); + var res = new BaseResponse(new LoginVo(userinfo,token, dto.refreshToken, expiresAt)); + return Ok(res); + } + } +} diff --git a/backend/IM_API/Controllers/ConversationController.cs b/backend/IM_API/Controllers/ConversationController.cs index 4b72791..c031c4d 100644 --- a/backend/IM_API/Controllers/ConversationController.cs +++ b/backend/IM_API/Controllers/ConversationController.cs @@ -1,56 +1,56 @@ -using IM_API.Dtos; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.VOs.Conversation; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using System.Security.Claims; - -namespace IM_API.Controllers -{ - [Route("api/[controller]/[action]")] - [Authorize] - [ApiController] - public class ConversationController : ControllerBase - { - private readonly IConversationService _conversationSerivice; - private readonly ILogger _logger; - public ConversationController(IConversationService conversationSerivice, ILogger logger) - { - _conversationSerivice = conversationSerivice; - _logger = logger; - } - [HttpGet] - public async Task List() - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - var list = await _conversationSerivice.GetConversationsAsync(int.Parse(userIdStr)); - var res = new BaseResponse>(list); - return Ok(res); - } - [HttpGet] - public async Task Get([FromQuery]int conversationId) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - var conversation = await _conversationSerivice.GetConversationByIdAsync(int.Parse(userIdStr), conversationId); - var res = new BaseResponse(conversation); - return Ok(res); - } - [HttpPost] - public async Task Clear() - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - await _conversationSerivice.ClearConversationsAsync(int.Parse(userIdStr)); - return Ok(new BaseResponse()); - } - [HttpPost] - public async Task Delete(int cid) - { - await _conversationSerivice.DeleteConversationAsync(cid); - return Ok(new BaseResponse()); - } - - - } -} +using IM_API.Dtos; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.VOs.Conversation; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.Security.Claims; + +namespace IM_API.Controllers +{ + [Route("api/[controller]/[action]")] + [Authorize] + [ApiController] + public class ConversationController : ControllerBase + { + private readonly IConversationService _conversationSerivice; + private readonly ILogger _logger; + public ConversationController(IConversationService conversationSerivice, ILogger logger) + { + _conversationSerivice = conversationSerivice; + _logger = logger; + } + [HttpGet] + public async Task List() + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + var list = await _conversationSerivice.GetConversationsAsync(int.Parse(userIdStr)); + var res = new BaseResponse>(list); + return Ok(res); + } + [HttpGet] + public async Task Get([FromQuery]int conversationId) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + var conversation = await _conversationSerivice.GetConversationByIdAsync(int.Parse(userIdStr), conversationId); + var res = new BaseResponse(conversation); + return Ok(res); + } + [HttpPost] + public async Task Clear() + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + await _conversationSerivice.ClearConversationsAsync(int.Parse(userIdStr)); + return Ok(new BaseResponse()); + } + [HttpPost] + public async Task Delete(int cid) + { + await _conversationSerivice.DeleteConversationAsync(cid); + return Ok(new BaseResponse()); + } + + + } +} diff --git a/backend/IM_API/Controllers/FriendController.cs b/backend/IM_API/Controllers/FriendController.cs index ea8c53f..972a31a 100644 --- a/backend/IM_API/Controllers/FriendController.cs +++ b/backend/IM_API/Controllers/FriendController.cs @@ -1,117 +1,117 @@ -using IM_API.Dtos; -using IM_API.Dtos.Friend; -using IM_API.Interface.Services; -using IM_API.Models; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using System.Security.Claims; - -namespace IM_API.Controllers -{ - [Authorize] - [Route("api/[controller]/[action]")] - [ApiController] - public class FriendController : ControllerBase - { - private readonly IFriendSerivce _friendService; - private readonly ILogger _logger; - public FriendController(IFriendSerivce friendService, ILogger logger) - { - _friendService = friendService; - _logger = logger; - } - /// - /// 发起好友请求 - /// - /// - /// - [HttpPost] - public async Task Request(FriendRequestDto dto) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - int userId = int.Parse(userIdStr); - dto.FromUserId = userId; - await _friendService.SendFriendRequestAsync(dto); - var res = new BaseResponse(); - return Ok(res); - } - /// - /// 获取好友请求列表 - /// - /// - /// - /// - /// - /// - [HttpGet] - public async Task Requests(int page,int limit,bool desc) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - int userId = int.Parse(userIdStr); - var list = await _friendService.GetFriendRequestListAsync(userId,page,limit,desc); - var res = new BaseResponse>(list); - return Ok(res); - } - /// - /// 处理好友请求 - /// - /// - /// - /// - [HttpPost] - public async Task HandleRequest( - [FromQuery]int id, [FromBody]FriendRequestHandleDto dto - ) - { - await _friendService.HandleFriendRequestAsync(new HandleFriendRequestDto() - { - RequestId = id, - RemarkName = dto.RemarkName, - Action = dto.Action - }); - var res = new BaseResponse(); - return Ok(res); - } - /// - /// 获取好友列表 - /// - /// - /// - /// - /// - [HttpGet] - public async Task List(int page,int limit,bool desc) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - int userId = int.Parse(userIdStr); - var list = await _friendService.GetFriendListAsync(userId,page,limit,desc); - var res = new BaseResponse>(list); - return Ok(res); - } - /// - /// 删除好友 - /// - /// - /// - [HttpPost] - public async Task Delete([FromRoute] int friendId) - { - //TODO: 这里存在安全问题,当用户传入的id与用户无关时也可以删除成功,待修复。 - await _friendService.DeleteFriendAsync(friendId); - return Ok(new BaseResponse()); - } - /// - /// 拉黑好友 - /// - /// - /// - [HttpPost] - public async Task Block([FromRoute] int friendId) - { - //TODO: 这里存在安全问题,当用户传入的id与用户无关时也可以拉黑成功,待修复。 - await _friendService.BlockeFriendAsync(friendId); - return Ok(new BaseResponse()); - } - } -} +using IM_API.Dtos; +using IM_API.Dtos.Friend; +using IM_API.Interface.Services; +using IM_API.Models; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.Security.Claims; + +namespace IM_API.Controllers +{ + [Authorize] + [Route("api/[controller]/[action]")] + [ApiController] + public class FriendController : ControllerBase + { + private readonly IFriendSerivce _friendService; + private readonly ILogger _logger; + public FriendController(IFriendSerivce friendService, ILogger logger) + { + _friendService = friendService; + _logger = logger; + } + /// + /// 发起好友请求 + /// + /// + /// + [HttpPost] + public async Task Request(FriendRequestDto dto) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + int userId = int.Parse(userIdStr); + dto.FromUserId = userId; + await _friendService.SendFriendRequestAsync(dto); + var res = new BaseResponse(); + return Ok(res); + } + /// + /// 获取好友请求列表 + /// + /// + /// + /// + /// + /// + [HttpGet] + public async Task Requests(int page,int limit,bool desc) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + int userId = int.Parse(userIdStr); + var list = await _friendService.GetFriendRequestListAsync(userId,page,limit,desc); + var res = new BaseResponse>(list); + return Ok(res); + } + /// + /// 处理好友请求 + /// + /// + /// + /// + [HttpPost] + public async Task HandleRequest( + [FromQuery]int id, [FromBody]FriendRequestHandleDto dto + ) + { + await _friendService.HandleFriendRequestAsync(new HandleFriendRequestDto() + { + RequestId = id, + RemarkName = dto.RemarkName, + Action = dto.Action + }); + var res = new BaseResponse(); + return Ok(res); + } + /// + /// 获取好友列表 + /// + /// + /// + /// + /// + [HttpGet] + public async Task List(int page,int limit,bool desc) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + int userId = int.Parse(userIdStr); + var list = await _friendService.GetFriendListAsync(userId,page,limit,desc); + var res = new BaseResponse>(list); + return Ok(res); + } + /// + /// 删除好友 + /// + /// + /// + [HttpPost] + public async Task Delete([FromRoute] int friendId) + { + //TODO: 这里存在安全问题,当用户传入的id与用户无关时也可以删除成功,待修复。 + await _friendService.DeleteFriendAsync(friendId); + return Ok(new BaseResponse()); + } + /// + /// 拉黑好友 + /// + /// + /// + [HttpPost] + public async Task Block([FromRoute] int friendId) + { + //TODO: 这里存在安全问题,当用户传入的id与用户无关时也可以拉黑成功,待修复。 + await _friendService.BlockeFriendAsync(friendId); + return Ok(new BaseResponse()); + } + } +} diff --git a/backend/IM_API/Controllers/GroupController.cs b/backend/IM_API/Controllers/GroupController.cs index 0f7582f..2a084ce 100644 --- a/backend/IM_API/Controllers/GroupController.cs +++ b/backend/IM_API/Controllers/GroupController.cs @@ -1,71 +1,71 @@ -using IM_API.Dtos; -using IM_API.Dtos.Group; -using IM_API.Interface.Services; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using System.Security.Claims; - -namespace IM_API.Controllers -{ - [Authorize] - [Route("api/[controller]/[action]")] - [ApiController] - public class GroupController : ControllerBase - { - private readonly IGroupService _groupService; - private readonly ILogger _logger; - public GroupController(IGroupService groupService, ILogger logger) - { - _groupService = groupService; - _logger = logger; - } - [HttpGet] - [ProducesResponseType(typeof(BaseResponse>) ,StatusCodes.Status200OK)] - public async Task GetGroups(int page = 1, int limit = 100, bool desc = false) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - var list = await _groupService.GetGroupListAsync(int.Parse(userIdStr), page, limit, desc); - var res = new BaseResponse>(list); - return Ok(res); - } - - [HttpPost] - [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] - public async Task CreateGroup([FromBody]GroupCreateDto groupCreateDto) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - var groupInfo = await _groupService.CreateGroupAsync(int.Parse(userIdStr), groupCreateDto); - var res = new BaseResponse(groupInfo); - return Ok(res); - } - - [HttpPost] - [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] - public async Task HandleGroupInvite([FromBody]HandleGroupInviteDto dto) - { - string userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier)!; - await _groupService.HandleGroupInviteAsync(int.Parse(userIdStr), dto); - var res = new BaseResponse(); - return Ok(res); - } - [HttpPost] - [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] - public async Task HandleGroupRequest([FromBody]HandleGroupRequestDto dto) - { - string userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - await _groupService.HandleGroupRequestAsync(int.Parse(userIdStr),dto); - var res = new BaseResponse(); - return Ok(res); - } - [HttpPost] - [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] - public async Task InviteUser([FromBody]GroupInviteUserDto dto) - { - string userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - await _groupService.InviteUsersAsync(int.Parse(userIdStr), dto.GroupId, dto.Ids); - var res = new BaseResponse(); - return Ok(res); - } - } -} +using IM_API.Dtos; +using IM_API.Dtos.Group; +using IM_API.Interface.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.Security.Claims; + +namespace IM_API.Controllers +{ + [Authorize] + [Route("api/[controller]/[action]")] + [ApiController] + public class GroupController : ControllerBase + { + private readonly IGroupService _groupService; + private readonly ILogger _logger; + public GroupController(IGroupService groupService, ILogger logger) + { + _groupService = groupService; + _logger = logger; + } + [HttpGet] + [ProducesResponseType(typeof(BaseResponse>) ,StatusCodes.Status200OK)] + public async Task GetGroups(int page = 1, int limit = 100, bool desc = false) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + var list = await _groupService.GetGroupListAsync(int.Parse(userIdStr), page, limit, desc); + var res = new BaseResponse>(list); + return Ok(res); + } + + [HttpPost] + [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] + public async Task CreateGroup([FromBody]GroupCreateDto groupCreateDto) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + var groupInfo = await _groupService.CreateGroupAsync(int.Parse(userIdStr), groupCreateDto); + var res = new BaseResponse(groupInfo); + return Ok(res); + } + + [HttpPost] + [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] + public async Task HandleGroupInvite([FromBody]HandleGroupInviteDto dto) + { + string userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier)!; + await _groupService.HandleGroupInviteAsync(int.Parse(userIdStr), dto); + var res = new BaseResponse(); + return Ok(res); + } + [HttpPost] + [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] + public async Task HandleGroupRequest([FromBody]HandleGroupRequestDto dto) + { + string userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + await _groupService.HandleGroupRequestAsync(int.Parse(userIdStr),dto); + var res = new BaseResponse(); + return Ok(res); + } + [HttpPost] + [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] + public async Task InviteUser([FromBody]GroupInviteUserDto dto) + { + string userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + await _groupService.InviteUsersAsync(int.Parse(userIdStr), dto.GroupId, dto.Ids); + var res = new BaseResponse(); + return Ok(res); + } + } +} diff --git a/backend/IM_API/Controllers/MessageController.cs b/backend/IM_API/Controllers/MessageController.cs index be09207..18ec5de 100644 --- a/backend/IM_API/Controllers/MessageController.cs +++ b/backend/IM_API/Controllers/MessageController.cs @@ -1,55 +1,55 @@ -using IM_API.Application.Interfaces; -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Dtos.Message; -using IM_API.Interface.Services; -using IM_API.VOs.Message; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using System.ComponentModel.DataAnnotations; -using System.Security.Claims; - -namespace IM_API.Controllers -{ - [Authorize] - [Route("api/[controller]/[action]")] - [ApiController] - public class MessageController : ControllerBase - { - private readonly IMessageSevice _messageService; - private readonly ILogger _logger; - private readonly IEventBus _eventBus; - public MessageController(IMessageSevice messageService, ILogger logger, IEventBus eventBus) - { - _messageService = messageService; - _logger = logger; - _eventBus = eventBus; - } - [HttpPost] - [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] - public async Task SendMessage(MessageBaseDto dto) - { - var userIdstr = User.FindFirstValue(ClaimTypes.NameIdentifier); - MessageBaseVo messageBaseVo = new MessageBaseVo(); - if(dto.ChatType == Models.ChatType.PRIVATE) - { - messageBaseVo = await _messageService.SendPrivateMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); - } - else - { - messageBaseVo = await _messageService.SendGroupMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); - } - return Ok(new BaseResponse(messageBaseVo)); - } - [HttpGet] - [ProducesResponseType(typeof(BaseResponse>), StatusCodes.Status200OK)] - public async Task GetMessageList([FromQuery]MessageQueryDto dto) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - var msgList = await _messageService.GetMessagesAsync(int.Parse(userIdStr),dto); - var res = new BaseResponse>(msgList); - return Ok(res); - } - } -} +using IM_API.Application.Interfaces; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Dtos.Message; +using IM_API.Interface.Services; +using IM_API.VOs.Message; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.ComponentModel.DataAnnotations; +using System.Security.Claims; + +namespace IM_API.Controllers +{ + [Authorize] + [Route("api/[controller]/[action]")] + [ApiController] + public class MessageController : ControllerBase + { + private readonly IMessageSevice _messageService; + private readonly ILogger _logger; + private readonly IEventBus _eventBus; + public MessageController(IMessageSevice messageService, ILogger logger, IEventBus eventBus) + { + _messageService = messageService; + _logger = logger; + _eventBus = eventBus; + } + [HttpPost] + [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] + public async Task SendMessage(MessageBaseDto dto) + { + var userIdstr = User.FindFirstValue(ClaimTypes.NameIdentifier); + MessageBaseVo messageBaseVo = new MessageBaseVo(); + if(dto.ChatType == Models.ChatType.PRIVATE) + { + messageBaseVo = await _messageService.SendPrivateMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); + } + else + { + messageBaseVo = await _messageService.SendGroupMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); + } + return Ok(new BaseResponse(messageBaseVo)); + } + [HttpGet] + [ProducesResponseType(typeof(BaseResponse>), StatusCodes.Status200OK)] + public async Task GetMessageList([FromQuery]MessageQueryDto dto) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + var msgList = await _messageService.GetMessagesAsync(int.Parse(userIdStr),dto); + var res = new BaseResponse>(msgList); + return Ok(res); + } + } +} diff --git a/backend/IM_API/Controllers/UserController.cs b/backend/IM_API/Controllers/UserController.cs index f4b4c3a..8aad5de 100644 --- a/backend/IM_API/Controllers/UserController.cs +++ b/backend/IM_API/Controllers/UserController.cs @@ -1,114 +1,114 @@ -using IM_API.Dtos; -using IM_API.Dtos.User; -using IM_API.Interface.Services; -using IM_API.Tools; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using System.ComponentModel.DataAnnotations; -using System.IdentityModel.Tokens.Jwt; -using System.Security.Claims; - -namespace IM_API.Controllers -{ - [Authorize] - [Route("api/[controller]/[action]")] - [ApiController] - public class UserController : ControllerBase - { - private readonly IUserService _userService; - private readonly ILogger _logger; - public UserController(IUserService userService, ILogger logger) - { - _userService = userService; - _logger = logger; - } - /// - /// 获取当前用户信息 - /// - /// - [HttpGet] - public async Task Me() - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - int userId = int.Parse(userIdStr); - var userinfo = await _userService.GetUserInfoAsync(userId); - var res = new BaseResponse(userinfo); - return Ok(res); - } - /// - /// 修改用户资料 - /// - /// - /// - [HttpPost] - public async Task Profile(UpdateUserDto dto) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - int userId = int.Parse(userIdStr); - var userinfo = await _userService.UpdateUserAsync(userId, dto); - var res = new BaseResponse(userinfo); - return Ok(res); - - } - /// - /// ID查询用户 - /// - /// - /// - [HttpGet] - public async Task Find(int userId) - { - var userinfo = await _userService.GetUserInfoAsync(userId); - var res = new BaseResponse(userinfo); - return Ok(res); - } - /// - /// 用户名查询用户 - /// - /// - /// - [HttpGet] - public async Task FindByUsername(string username) - { - var userinfo = await _userService.GetUserInfoByUsernameAsync(username); - var res = new BaseResponse(userinfo); - return Ok(res); - } - /// - /// 重置用户密码 - /// - /// - /// - [HttpPost] - public async Task ResetPassword(PasswordResetDto dto) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - int userId = int.Parse(userIdStr); - await _userService.ResetPasswordAsync(userId, dto.OldPassword, dto.Password); - return Ok(new BaseResponse()); - } - /// - /// 设置在线状态 - /// - /// - /// - [HttpPost] - public async Task SetOnlineStatus(OnlineStatusSetDto dto) - { - var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); - int userId = int.Parse(userIdStr); - await _userService.UpdateOlineStatusAsync(userId, dto.OnlineStatus); - return Ok(new BaseResponse()); - } - - [HttpPost] - [ProducesResponseType(typeof(BaseResponse>), StatusCodes.Status200OK)] - public async Task GetUserList([FromBody][Required]List ids) - { - var users = await _userService.GetUserInfoListAsync(ids); - var res = new BaseResponse>(users); - return Ok(res); - } - } -} +using IM_API.Dtos; +using IM_API.Dtos.User; +using IM_API.Interface.Services; +using IM_API.Tools; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System.ComponentModel.DataAnnotations; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; + +namespace IM_API.Controllers +{ + [Authorize] + [Route("api/[controller]/[action]")] + [ApiController] + public class UserController : ControllerBase + { + private readonly IUserService _userService; + private readonly ILogger _logger; + public UserController(IUserService userService, ILogger logger) + { + _userService = userService; + _logger = logger; + } + /// + /// 获取当前用户信息 + /// + /// + [HttpGet] + public async Task Me() + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + int userId = int.Parse(userIdStr); + var userinfo = await _userService.GetUserInfoAsync(userId); + var res = new BaseResponse(userinfo); + return Ok(res); + } + /// + /// 修改用户资料 + /// + /// + /// + [HttpPost] + public async Task Profile(UpdateUserDto dto) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + int userId = int.Parse(userIdStr); + var userinfo = await _userService.UpdateUserAsync(userId, dto); + var res = new BaseResponse(userinfo); + return Ok(res); + + } + /// + /// ID查询用户 + /// + /// + /// + [HttpGet] + public async Task Find(int userId) + { + var userinfo = await _userService.GetUserInfoAsync(userId); + var res = new BaseResponse(userinfo); + return Ok(res); + } + /// + /// 用户名查询用户 + /// + /// + /// + [HttpGet] + public async Task FindByUsername(string username) + { + var userinfo = await _userService.GetUserInfoByUsernameAsync(username); + var res = new BaseResponse(userinfo); + return Ok(res); + } + /// + /// 重置用户密码 + /// + /// + /// + [HttpPost] + public async Task ResetPassword(PasswordResetDto dto) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + int userId = int.Parse(userIdStr); + await _userService.ResetPasswordAsync(userId, dto.OldPassword, dto.Password); + return Ok(new BaseResponse()); + } + /// + /// 设置在线状态 + /// + /// + /// + [HttpPost] + public async Task SetOnlineStatus(OnlineStatusSetDto dto) + { + var userIdStr = User.FindFirstValue(ClaimTypes.NameIdentifier); + int userId = int.Parse(userIdStr); + await _userService.UpdateOlineStatusAsync(userId, dto.OnlineStatus); + return Ok(new BaseResponse()); + } + + [HttpPost] + [ProducesResponseType(typeof(BaseResponse>), StatusCodes.Status200OK)] + public async Task GetUserList([FromBody][Required]List ids) + { + var users = await _userService.GetUserInfoListAsync(ids); + var res = new BaseResponse>(users); + return Ok(res); + } + } +} diff --git a/backend/IM_API/Dockerfile b/backend/IM_API/Dockerfile index 3d03d53..06be2ad 100644 --- a/backend/IM_API/Dockerfile +++ b/backend/IM_API/Dockerfile @@ -1,30 +1,30 @@ -# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。 - -# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -USER $APP_UID -WORKDIR /app -EXPOSE 8080 -EXPOSE 8081 - - -# 此阶段用于生成服务项目 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -COPY ["IM_API.csproj", "."] -RUN dotnet restore "./IM_API.csproj" -COPY . . -WORKDIR "/src/." -RUN dotnet build "./IM_API.csproj" -c $BUILD_CONFIGURATION -o /app/build - -# 此阶段用于发布要复制到最终阶段的服务项目 -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./IM_API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false - -# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . +# 请参阅 https://aka.ms/customizecontainer 以了解如何自定义调试容器,以及 Visual Studio 如何使用此 Dockerfile 生成映像以更快地进行调试。 + +# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 8080 +EXPOSE 8081 + + +# 此阶段用于生成服务项目 +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["IM_API.csproj", "."] +RUN dotnet restore "./IM_API.csproj" +COPY . . +WORKDIR "/src/." +RUN dotnet build "./IM_API.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# 此阶段用于发布要复制到最终阶段的服务项目 +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./IM_API.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "IM_API.dll"] \ No newline at end of file diff --git a/backend/IM_API/Domain/Events/DomainEvent.cs b/backend/IM_API/Domain/Events/DomainEvent.cs index 3f2b8df..52ef606 100644 --- a/backend/IM_API/Domain/Events/DomainEvent.cs +++ b/backend/IM_API/Domain/Events/DomainEvent.cs @@ -1,13 +1,13 @@ -using IM_API.Domain.Interfaces; - -namespace IM_API.Domain.Events -{ - public abstract record DomainEvent: IEvent - { - public Guid EventId { get; init; } = Guid.NewGuid(); - public DateTimeOffset OccurredAt { get; init; } = DateTime.Now; - public long OperatorId { get; init; } - public string AggregateId { get; init; } = ""; - public abstract string EventType { get; } - } -} +using IM_API.Domain.Interfaces; + +namespace IM_API.Domain.Events +{ + public abstract record DomainEvent: IEvent + { + public Guid EventId { get; init; } = Guid.NewGuid(); + public DateTimeOffset OccurredAt { get; init; } = DateTime.Now; + public long OperatorId { get; init; } + public string AggregateId { get; init; } = ""; + public abstract string EventType { get; } + } +} diff --git a/backend/IM_API/Domain/Events/FriendAddEvent.cs b/backend/IM_API/Domain/Events/FriendAddEvent.cs index 6724f6c..cc834b1 100644 --- a/backend/IM_API/Domain/Events/FriendAddEvent.cs +++ b/backend/IM_API/Domain/Events/FriendAddEvent.cs @@ -1,25 +1,25 @@ -using IM_API.Dtos.Friend; - -namespace IM_API.Domain.Events -{ - public record FriendAddEvent:DomainEvent - { - public override string EventType => "IM.FRIENDS_FRIEND_ADD"; - /// - /// 发起请求用户 - /// - public int RequestUserId { get; init; } - public string? requestUserRemarkname { get; init; } - /// - /// 接受请求用户 - /// - public int ResponseUserId { get; init; } - - public FriendRequestDto RequestInfo { get; init; } - /// - /// 好友关系创建时间 - /// - public DateTimeOffset Created { get; init; } - - } -} +using IM_API.Dtos.Friend; + +namespace IM_API.Domain.Events +{ + public record FriendAddEvent:DomainEvent + { + public override string EventType => "IM.FRIENDS_FRIEND_ADD"; + /// + /// 发起请求用户 + /// + public int RequestUserId { get; init; } + public string? requestUserRemarkname { get; init; } + /// + /// 接受请求用户 + /// + public int ResponseUserId { get; init; } + + public FriendRequestDto RequestInfo { get; init; } + /// + /// 好友关系创建时间 + /// + public DateTimeOffset Created { get; init; } + + } +} diff --git a/backend/IM_API/Domain/Events/GroupInviteActionUpdateEvent.cs b/backend/IM_API/Domain/Events/GroupInviteActionUpdateEvent.cs index 3368dfe..1b1deac 100644 --- a/backend/IM_API/Domain/Events/GroupInviteActionUpdateEvent.cs +++ b/backend/IM_API/Domain/Events/GroupInviteActionUpdateEvent.cs @@ -1,14 +1,14 @@ -using IM_API.Models; - -namespace IM_API.Domain.Events -{ - public record GroupInviteActionUpdateEvent : DomainEvent - { - public override string EventType => "IM.GROUPS_INVITE_UPDATE"; - public int UserId { get; set; } - public int InviteUserId { get; set; } - public int InviteId { get; set; } - public int GroupId { get; set; } - public GroupInviteState Action { get; set; } - } -} +using IM_API.Models; + +namespace IM_API.Domain.Events +{ + public record GroupInviteActionUpdateEvent : DomainEvent + { + public override string EventType => "IM.GROUPS_INVITE_UPDATE"; + public int UserId { get; set; } + public int InviteUserId { get; set; } + public int InviteId { get; set; } + public int GroupId { get; set; } + public GroupInviteState Action { get; set; } + } +} diff --git a/backend/IM_API/Domain/Events/GroupInviteEvent.cs b/backend/IM_API/Domain/Events/GroupInviteEvent.cs index 3b2ebde..6822875 100644 --- a/backend/IM_API/Domain/Events/GroupInviteEvent.cs +++ b/backend/IM_API/Domain/Events/GroupInviteEvent.cs @@ -1,10 +1,10 @@ -namespace IM_API.Domain.Events -{ - public record GroupInviteEvent : DomainEvent - { - public override string EventType => "IM.GROUPS_INVITE_ADD"; - public required List Ids { get; init; } - public int GroupId { get; init; } - public int UserId { get; init; } - } -} +namespace IM_API.Domain.Events +{ + public record GroupInviteEvent : DomainEvent + { + public override string EventType => "IM.GROUPS_INVITE_ADD"; + public required List Ids { get; init; } + public int GroupId { get; init; } + public int UserId { get; init; } + } +} diff --git a/backend/IM_API/Domain/Events/GroupJoinEvent.cs b/backend/IM_API/Domain/Events/GroupJoinEvent.cs index a73cc3c..4358bb0 100644 --- a/backend/IM_API/Domain/Events/GroupJoinEvent.cs +++ b/backend/IM_API/Domain/Events/GroupJoinEvent.cs @@ -1,10 +1,10 @@ -namespace IM_API.Domain.Events -{ - public record GroupJoinEvent : DomainEvent - { - public override string EventType => "IM.GROUPS_MEMBER_ADD"; - public int UserId { get; set; } - public int GroupId { get; set; } - public bool IsCreated { get; set; } = false; - } -} +namespace IM_API.Domain.Events +{ + public record GroupJoinEvent : DomainEvent + { + public override string EventType => "IM.GROUPS_MEMBER_ADD"; + public int UserId { get; set; } + public int GroupId { get; set; } + public bool IsCreated { get; set; } = false; + } +} diff --git a/backend/IM_API/Domain/Events/GroupRequestEvent.cs b/backend/IM_API/Domain/Events/GroupRequestEvent.cs index ade919d..4ed97a7 100644 --- a/backend/IM_API/Domain/Events/GroupRequestEvent.cs +++ b/backend/IM_API/Domain/Events/GroupRequestEvent.cs @@ -1,15 +1,15 @@ -using IM_API.Dtos.Group; -using IM_API.Models; - -namespace IM_API.Domain.Events -{ - public record GroupRequestEvent : DomainEvent - { - public override string EventType => "IM.GROUPS_GROUP_REQUEST"; - public int GroupId { get; init; } - public int UserId { get; set; } - public string Description { get; set; } - public GroupRequestState Action { get; set; } - - } -} +using IM_API.Dtos.Group; +using IM_API.Models; + +namespace IM_API.Domain.Events +{ + public record GroupRequestEvent : DomainEvent + { + public override string EventType => "IM.GROUPS_GROUP_REQUEST"; + public int GroupId { get; init; } + public int UserId { get; set; } + public string Description { get; set; } + public GroupRequestState Action { get; set; } + + } +} diff --git a/backend/IM_API/Domain/Events/GroupRequestUpdateEvent.cs b/backend/IM_API/Domain/Events/GroupRequestUpdateEvent.cs index 579dbda..60d535b 100644 --- a/backend/IM_API/Domain/Events/GroupRequestUpdateEvent.cs +++ b/backend/IM_API/Domain/Events/GroupRequestUpdateEvent.cs @@ -1,14 +1,14 @@ -using IM_API.Models; - -namespace IM_API.Domain.Events -{ - public record GroupRequestUpdateEvent : DomainEvent - { - public override string EventType => "IM.GROUPS_REQUEST_UPDATE"; - public int UserId { get; set; } - public int GroupId { get; set; } - public int AdminUserId { get; set; } - public int RequestId { get; set; } - public GroupRequestState Action { get; set; } - } -} +using IM_API.Models; + +namespace IM_API.Domain.Events +{ + public record GroupRequestUpdateEvent : DomainEvent + { + public override string EventType => "IM.GROUPS_REQUEST_UPDATE"; + public int UserId { get; set; } + public int GroupId { get; set; } + public int AdminUserId { get; set; } + public int RequestId { get; set; } + public GroupRequestState Action { get; set; } + } +} diff --git a/backend/IM_API/Domain/Events/MessageCreatedEvent.cs b/backend/IM_API/Domain/Events/MessageCreatedEvent.cs index b35e1c0..d43c310 100644 --- a/backend/IM_API/Domain/Events/MessageCreatedEvent.cs +++ b/backend/IM_API/Domain/Events/MessageCreatedEvent.cs @@ -1,23 +1,23 @@ -using IM_API.Dtos; -using IM_API.Models; - -namespace IM_API.Domain.Events -{ - public record MessageCreatedEvent : DomainEvent - { - public override string EventType => "IM.MESSAGE.MESSAGE_CREATED"; - public ChatType ChatType { get; set; } - public MessageMsgType MessageMsgType { get; set; } - public long SequenceId { get; set; } - public string MessageContent { get; set; } - public int MsgSenderId { get; set; } - public int MsgRecipientId { get; set; } - public MessageState State { get; set; } - public DateTimeOffset MessageCreated { get; set; } - public string StreamKey { get; set; } - public Guid ClientMsgId { get; set; } - - - - } -} +using IM_API.Dtos; +using IM_API.Models; + +namespace IM_API.Domain.Events +{ + public record MessageCreatedEvent : DomainEvent + { + public override string EventType => "IM.MESSAGE.MESSAGE_CREATED"; + public ChatType ChatType { get; set; } + public MessageMsgType MessageMsgType { get; set; } + public long SequenceId { get; set; } + public string MessageContent { get; set; } + public int MsgSenderId { get; set; } + public int MsgRecipientId { get; set; } + public MessageState State { get; set; } + public DateTimeOffset MessageCreated { get; set; } + public string StreamKey { get; set; } + public Guid ClientMsgId { get; set; } + + + + } +} diff --git a/backend/IM_API/Domain/Events/RequestFriendEvent.cs b/backend/IM_API/Domain/Events/RequestFriendEvent.cs index 62a80ce..7f9f00c 100644 --- a/backend/IM_API/Domain/Events/RequestFriendEvent.cs +++ b/backend/IM_API/Domain/Events/RequestFriendEvent.cs @@ -1,10 +1,10 @@ -namespace IM_API.Domain.Events -{ - public record RequestFriendEvent : DomainEvent - { - public override string EventType => "IM.FRIENDS_FRIEND_REQUEST"; - public int FromUserId { get; init; } - public int ToUserId { get; init; } - public string Description { get; init; } - } -} +namespace IM_API.Domain.Events +{ + public record RequestFriendEvent : DomainEvent + { + public override string EventType => "IM.FRIENDS_FRIEND_REQUEST"; + public int FromUserId { get; init; } + public int ToUserId { get; init; } + public string Description { get; init; } + } +} diff --git a/backend/IM_API/Domain/Interfaces/IEvent.cs b/backend/IM_API/Domain/Interfaces/IEvent.cs index d3fc5a3..2f5a36b 100644 --- a/backend/IM_API/Domain/Interfaces/IEvent.cs +++ b/backend/IM_API/Domain/Interfaces/IEvent.cs @@ -1,6 +1,6 @@ -namespace IM_API.Domain.Interfaces -{ - public interface IEvent - { - } -} +namespace IM_API.Domain.Interfaces +{ + public interface IEvent + { + } +} diff --git a/backend/IM_API/Dtos/Auth/AuthDto.cs b/backend/IM_API/Dtos/Auth/AuthDto.cs index 27b95a7..41ba716 100644 --- a/backend/IM_API/Dtos/Auth/AuthDto.cs +++ b/backend/IM_API/Dtos/Auth/AuthDto.cs @@ -1,4 +1,4 @@ -namespace IM_API.Dtos.Auth -{ - public record RefreshDto(string refreshToken); -} +namespace IM_API.Dtos.Auth +{ + public record RefreshDto(string refreshToken); +} diff --git a/backend/IM_API/Dtos/Auth/LoginRequestDto.cs b/backend/IM_API/Dtos/Auth/LoginRequestDto.cs index f4d7e0f..a559737 100644 --- a/backend/IM_API/Dtos/Auth/LoginRequestDto.cs +++ b/backend/IM_API/Dtos/Auth/LoginRequestDto.cs @@ -1,17 +1,17 @@ -using IM_API.Tools; -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.Auth -{ - public class LoginRequestDto - { - [Required(ErrorMessage = "用户名不能为空")] - [StringLength(20, ErrorMessage = "用户名不能超过20字符")] - [RegularExpression(@"^[A-Za-z0-9]+$",ErrorMessage = "用户名只能为英文或数字")] - public string Username { get; set; } - - [Required(ErrorMessage = "密码不能为空")] - [StringLength(50, ErrorMessage = "密码不能超过50字符")] - public string Password { get; set; } - } -} +using IM_API.Tools; +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.Auth +{ + public class LoginRequestDto + { + [Required(ErrorMessage = "用户名不能为空")] + [StringLength(20, ErrorMessage = "用户名不能超过20字符")] + [RegularExpression(@"^[A-Za-z0-9]+$",ErrorMessage = "用户名只能为英文或数字")] + public string Username { get; set; } + + [Required(ErrorMessage = "密码不能为空")] + [StringLength(50, ErrorMessage = "密码不能超过50字符")] + public string Password { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Auth/RegisterRequestDto.cs b/backend/IM_API/Dtos/Auth/RegisterRequestDto.cs index c32dd87..0499f1a 100644 --- a/backend/IM_API/Dtos/Auth/RegisterRequestDto.cs +++ b/backend/IM_API/Dtos/Auth/RegisterRequestDto.cs @@ -1,19 +1,19 @@ -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.Auth -{ - public class RegisterRequestDto - { - [Required(ErrorMessage = "用户名不能为空")] - [MaxLength(20, ErrorMessage = "用户名不能超过20字符")] - [RegularExpression(@"^[A-Za-z0-9]+$", ErrorMessage = "用户名只能为英文或数字")] - public string Username { get; set; } - [Required(ErrorMessage = "密码不能为空")] - [MaxLength(50, ErrorMessage = "密码不能超过50字符")] - public string Password { get; set; } - [Required(ErrorMessage = "昵称不能为空")] - [MaxLength(20, ErrorMessage = "昵称不能超过20字符")] - - public string? NickName { get; set; } - } -} +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.Auth +{ + public class RegisterRequestDto + { + [Required(ErrorMessage = "用户名不能为空")] + [MaxLength(20, ErrorMessage = "用户名不能超过20字符")] + [RegularExpression(@"^[A-Za-z0-9]+$", ErrorMessage = "用户名只能为英文或数字")] + public string Username { get; set; } + [Required(ErrorMessage = "密码不能为空")] + [MaxLength(50, ErrorMessage = "密码不能超过50字符")] + public string Password { get; set; } + [Required(ErrorMessage = "昵称不能为空")] + [MaxLength(20, ErrorMessage = "昵称不能超过20字符")] + + public string? NickName { get; set; } + } +} diff --git a/backend/IM_API/Dtos/BaseResponse.cs b/backend/IM_API/Dtos/BaseResponse.cs index fb34f0f..53fc5cd 100644 --- a/backend/IM_API/Dtos/BaseResponse.cs +++ b/backend/IM_API/Dtos/BaseResponse.cs @@ -1,82 +1,82 @@ -using IM_API.Tools; - -namespace IM_API.Dtos -{ - public class BaseResponse - { - //响应状态码 - public int Code { get; set; } - //响应消息 - public string Message { get; set; } - //响应数据 - public T? Data { get; set; } - /// - /// 默认成功响应返回 - /// - /// - /// - public BaseResponse(string msg,T data) - { - this.Code = 0; - this.Message = msg; - this.Data = data; - } - /// - /// 默认成功响应返回仅数据 - /// - /// - public BaseResponse(T data) - { - this.Code = CodeDefine.SUCCESS.Code; - this.Message = CodeDefine.SUCCESS.Message; - this.Data = data; - } - /// - /// 默认成功响应返回,不带数据 - /// - /// - /// - public BaseResponse(string msg) - { - this.Code = CodeDefine.SUCCESS.Code; - this.Message = msg; - } - /// - /// 非成功响应且带数据 - /// - /// - /// - /// - public BaseResponse(int code, string message, T? data) - { - Code = code; - Message = message; - Data = data; - } - /// - /// 非成功响应且不带数据 - /// - /// - /// - /// - public BaseResponse(int code, string message) - { - Code = code; - Message = message; - } - /// - /// 接受codedefine对象 - /// - /// - public BaseResponse(CodeDefine codeDefine) - { - this.Code = codeDefine.Code; - this.Message = codeDefine.Message; - } - public BaseResponse() - { - this.Code = CodeDefine.SUCCESS.Code; - this.Message = CodeDefine.SUCCESS.Message; - } - } -} +using IM_API.Tools; + +namespace IM_API.Dtos +{ + public class BaseResponse + { + //响应状态码 + public int Code { get; set; } + //响应消息 + public string Message { get; set; } + //响应数据 + public T? Data { get; set; } + /// + /// 默认成功响应返回 + /// + /// + /// + public BaseResponse(string msg,T data) + { + this.Code = 0; + this.Message = msg; + this.Data = data; + } + /// + /// 默认成功响应返回仅数据 + /// + /// + public BaseResponse(T data) + { + this.Code = CodeDefine.SUCCESS.Code; + this.Message = CodeDefine.SUCCESS.Message; + this.Data = data; + } + /// + /// 默认成功响应返回,不带数据 + /// + /// + /// + public BaseResponse(string msg) + { + this.Code = CodeDefine.SUCCESS.Code; + this.Message = msg; + } + /// + /// 非成功响应且带数据 + /// + /// + /// + /// + public BaseResponse(int code, string message, T? data) + { + Code = code; + Message = message; + Data = data; + } + /// + /// 非成功响应且不带数据 + /// + /// + /// + /// + public BaseResponse(int code, string message) + { + Code = code; + Message = message; + } + /// + /// 接受codedefine对象 + /// + /// + public BaseResponse(CodeDefine codeDefine) + { + this.Code = codeDefine.Code; + this.Message = codeDefine.Message; + } + public BaseResponse() + { + this.Code = CodeDefine.SUCCESS.Code; + this.Message = CodeDefine.SUCCESS.Message; + } + } +} diff --git a/backend/IM_API/Dtos/Conversation/ClearConversationsDto.cs b/backend/IM_API/Dtos/Conversation/ClearConversationsDto.cs index fe1067d..30ef2e0 100644 --- a/backend/IM_API/Dtos/Conversation/ClearConversationsDto.cs +++ b/backend/IM_API/Dtos/Conversation/ClearConversationsDto.cs @@ -1,26 +1,26 @@ -namespace IM_API.Dtos.Conversation -{ - public class ClearConversationsDto - { - public int UserId { get; set; } - /// - /// 聊天类型 - /// - public MsgChatType ChatType { get; set; } - /// - /// 目标ID,聊天类型为群则为群id,私聊为用户id - /// - public int TargetId { get; set; } - } - public enum MsgChatType - { - /// - /// 私聊 - /// - single = 0, - /// - /// 私聊 - /// - group = 1 - } -} +namespace IM_API.Dtos.Conversation +{ + public class ClearConversationsDto + { + public int UserId { get; set; } + /// + /// 聊天类型 + /// + public MsgChatType ChatType { get; set; } + /// + /// 目标ID,聊天类型为群则为群id,私聊为用户id + /// + public int TargetId { get; set; } + } + public enum MsgChatType + { + /// + /// 私聊 + /// + single = 0, + /// + /// 私聊 + /// + group = 1 + } +} diff --git a/backend/IM_API/Dtos/Conversation/UpdateConversationDto.cs b/backend/IM_API/Dtos/Conversation/UpdateConversationDto.cs index 8313a12..e4a740f 100644 --- a/backend/IM_API/Dtos/Conversation/UpdateConversationDto.cs +++ b/backend/IM_API/Dtos/Conversation/UpdateConversationDto.cs @@ -1,12 +1,12 @@ -namespace IM_API.Dtos.Conversation -{ - public class UpdateConversationDto - { - public string StreamKey { get; set; } - public int SenderId { get; set; } - public int ReceiptId { get; set; } - public string LastMessage { get; set; } - public long LastSequenceId { get; set; } - public DateTimeOffset DateTime { get; set; } - } -} +namespace IM_API.Dtos.Conversation +{ + public class UpdateConversationDto + { + public string StreamKey { get; set; } + public int SenderId { get; set; } + public int ReceiptId { get; set; } + public string LastMessage { get; set; } + public long LastSequenceId { get; set; } + public DateTimeOffset DateTime { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Friend/FriendDto.cs b/backend/IM_API/Dtos/Friend/FriendDto.cs index f0d5269..3c9f476 100644 --- a/backend/IM_API/Dtos/Friend/FriendDto.cs +++ b/backend/IM_API/Dtos/Friend/FriendDto.cs @@ -1,33 +1,33 @@ -using IM_API.Dtos.User; -using IM_API.Models; -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.Friend -{ - public record FriendInfoDto - { - public int Id { get; init; } - - public int UserId { get; init; } - - public int FriendId { get; init; } - - public FriendStatus StatusEnum { get; init; } - - public DateTimeOffset Created { get; init; } - - public string RemarkName { get; init; } = string.Empty; - - public string? Avatar { get; init; } - public UserInfoDto UserInfo { get; init; } - } - - public record FriendRequestHandleDto - { - [Required(ErrorMessage = "操作必填")] - public HandleFriendRequestAction Action { get; init; } - - [StringLength(20, ErrorMessage = "备注名最大20个字符")] - public string? RemarkName { get; init; } - } -} +using IM_API.Dtos.User; +using IM_API.Models; +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.Friend +{ + public record FriendInfoDto + { + public int Id { get; init; } + + public int UserId { get; init; } + + public int FriendId { get; init; } + + public FriendStatus StatusEnum { get; init; } + + public DateTimeOffset Created { get; init; } + + public string RemarkName { get; init; } = string.Empty; + + public string? Avatar { get; init; } + public UserInfoDto UserInfo { get; init; } + } + + public record FriendRequestHandleDto + { + [Required(ErrorMessage = "操作必填")] + public HandleFriendRequestAction Action { get; init; } + + [StringLength(20, ErrorMessage = "备注名最大20个字符")] + public string? RemarkName { get; init; } + } +} diff --git a/backend/IM_API/Dtos/Friend/FriendRequestDto.cs b/backend/IM_API/Dtos/Friend/FriendRequestDto.cs index fdef132..e69db8d 100644 --- a/backend/IM_API/Dtos/Friend/FriendRequestDto.cs +++ b/backend/IM_API/Dtos/Friend/FriendRequestDto.cs @@ -1,15 +1,15 @@ -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.Friend -{ - public class FriendRequestDto - { - public int? FromUserId { get; set; } - public int ToUserId { get; set; } - [Required(ErrorMessage = "备注名必填")] - [StringLength(20, ErrorMessage = "备注名不能超过20位字符")] - public string? RemarkName { get; set; } - [StringLength(50, ErrorMessage = "描述不能超过50字符")] - public string? Description { get; set; } - } -} +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.Friend +{ + public class FriendRequestDto + { + public int? FromUserId { get; set; } + public int ToUserId { get; set; } + [Required(ErrorMessage = "备注名必填")] + [StringLength(20, ErrorMessage = "备注名不能超过20位字符")] + public string? RemarkName { get; set; } + [StringLength(50, ErrorMessage = "描述不能超过50字符")] + public string? Description { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Friend/FriendRequestResDto.cs b/backend/IM_API/Dtos/Friend/FriendRequestResDto.cs index 6fcde65..4aeea3d 100644 --- a/backend/IM_API/Dtos/Friend/FriendRequestResDto.cs +++ b/backend/IM_API/Dtos/Friend/FriendRequestResDto.cs @@ -1,36 +1,36 @@ -using IM_API.Models; - -namespace IM_API.Dtos.Friend -{ - public class FriendRequestResDto - { - public int Id { get; set; } - - /// - /// 申请人 - /// - public int RequestUser { get; set; } - - /// - /// 被申请人 - /// - public int ResponseUser { get; set; } - public string Avatar { get; set; } - public string NickName { get; set; } - - /// - /// 申请时间 - /// - public DateTimeOffset Created { get; set; } - - /// - /// 申请附言 - /// - public string? Description { get; set; } - - /// - /// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) - /// - public FriendRequestState State { get; set; } - } -} +using IM_API.Models; + +namespace IM_API.Dtos.Friend +{ + public class FriendRequestResDto + { + public int Id { get; set; } + + /// + /// 申请人 + /// + public int RequestUser { get; set; } + + /// + /// 被申请人 + /// + public int ResponseUser { get; set; } + public string Avatar { get; set; } + public string NickName { get; set; } + + /// + /// 申请时间 + /// + public DateTimeOffset Created { get; set; } + + /// + /// 申请附言 + /// + public string? Description { get; set; } + + /// + /// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) + /// + public FriendRequestState State { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Friend/HandleFriendRequestDto.cs b/backend/IM_API/Dtos/Friend/HandleFriendRequestDto.cs index afd2d00..cc1733e 100644 --- a/backend/IM_API/Dtos/Friend/HandleFriendRequestDto.cs +++ b/backend/IM_API/Dtos/Friend/HandleFriendRequestDto.cs @@ -1,29 +1,29 @@ -namespace IM_API.Dtos.Friend -{ - public class HandleFriendRequestDto - { - /// - /// 好友请求Id - /// - public int RequestId { get; set; } - /// - /// 处理操作 - /// - public HandleFriendRequestAction Action { get; set; } - /// - /// 好友备注名 - /// - public string? RemarkName { get; set; } - } - public enum HandleFriendRequestAction - { - /// - /// 同意 - /// - Accept = 0, - /// - /// 拒绝 - /// - Reject = 1 - } -} +namespace IM_API.Dtos.Friend +{ + public class HandleFriendRequestDto + { + /// + /// 好友请求Id + /// + public int RequestId { get; set; } + /// + /// 处理操作 + /// + public HandleFriendRequestAction Action { get; set; } + /// + /// 好友备注名 + /// + public string? RemarkName { get; set; } + } + public enum HandleFriendRequestAction + { + /// + /// 同意 + /// + Accept = 0, + /// + /// 拒绝 + /// + Reject = 1 + } +} diff --git a/backend/IM_API/Dtos/Group/GroupCreateDto.cs b/backend/IM_API/Dtos/Group/GroupCreateDto.cs index 32b2941..384cf8f 100644 --- a/backend/IM_API/Dtos/Group/GroupCreateDto.cs +++ b/backend/IM_API/Dtos/Group/GroupCreateDto.cs @@ -1,22 +1,22 @@ -using IM_API.Models; -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.Group -{ - public class GroupCreateDto - { - /// - /// 群聊名称 - /// - [Required(ErrorMessage = "群名称必填")] - [MaxLength(20, ErrorMessage = "群名称不能大于20字符")] - public string Name { get; set; } = null!; - - /// - /// 群头像 - /// - [Required(ErrorMessage = "群头像必填")] - public string Avatar { get; set; } = null!; - public List? UserIDs { get; set; } - } -} +using IM_API.Models; +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.Group +{ + public class GroupCreateDto + { + /// + /// 群聊名称 + /// + [Required(ErrorMessage = "群名称必填")] + [MaxLength(20, ErrorMessage = "群名称不能大于20字符")] + public string Name { get; set; } = null!; + + /// + /// 群头像 + /// + [Required(ErrorMessage = "群头像必填")] + public string Avatar { get; set; } = null!; + public List? UserIDs { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Group/GroupInfoDto.cs b/backend/IM_API/Dtos/Group/GroupInfoDto.cs index 3265681..c8f53ec 100644 --- a/backend/IM_API/Dtos/Group/GroupInfoDto.cs +++ b/backend/IM_API/Dtos/Group/GroupInfoDto.cs @@ -1,51 +1,51 @@ -using IM_API.Models; - -namespace IM_API.Dtos.Group -{ - public class GroupInfoDto - { - public int Id { get; set; } - - /// - /// 群聊名称 - /// - public string Name { get; set; } = null!; - - /// - /// 群主 - /// - public int GroupMaster { get; set; } - - /// - /// 群权限 - /// (0:需管理员同意,1:任意人可加群,2:不允许任何人加入) - /// - public GroupAuhority Auhority { get; set; } - - /// - /// 全员禁言(0允许发言,2全员禁言) - /// - public GroupAllMembersBanned AllMembersBanned { get; set; } - - /// - /// 群聊状态 - /// (1:正常,2:封禁) - /// - public GroupStatus Status { get; set; } - - /// - /// 群公告 - /// - public string? Announcement { get; set; } - - /// - /// 群聊创建时间 - /// - public DateTimeOffset Created { get; set; } - - /// - /// 群头像 - /// - public string Avatar { get; set; } = null!; - } -} +using IM_API.Models; + +namespace IM_API.Dtos.Group +{ + public class GroupInfoDto + { + public int Id { get; set; } + + /// + /// 群聊名称 + /// + public string Name { get; set; } = null!; + + /// + /// 群主 + /// + public int GroupMaster { get; set; } + + /// + /// 群权限 + /// (0:需管理员同意,1:任意人可加群,2:不允许任何人加入) + /// + public GroupAuhority Auhority { get; set; } + + /// + /// 全员禁言(0允许发言,2全员禁言) + /// + public GroupAllMembersBanned AllMembersBanned { get; set; } + + /// + /// 群聊状态 + /// (1:正常,2:封禁) + /// + public GroupStatus Status { get; set; } + + /// + /// 群公告 + /// + public string? Announcement { get; set; } + + /// + /// 群聊创建时间 + /// + public DateTimeOffset Created { get; set; } + + /// + /// 群头像 + /// + public string Avatar { get; set; } = null!; + } +} diff --git a/backend/IM_API/Dtos/Group/GroupInviteUserDto.cs b/backend/IM_API/Dtos/Group/GroupInviteUserDto.cs index df1d926..ab15351 100644 --- a/backend/IM_API/Dtos/Group/GroupInviteUserDto.cs +++ b/backend/IM_API/Dtos/Group/GroupInviteUserDto.cs @@ -1,8 +1,8 @@ -namespace IM_API.Dtos.Group -{ - public class GroupInviteUserDto - { - public int GroupId { get; set; } - public List Ids { get; set; } - } -} +namespace IM_API.Dtos.Group +{ + public class GroupInviteUserDto + { + public int GroupId { get; set; } + public List Ids { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Group/GroupUpdateConversationDto.cs b/backend/IM_API/Dtos/Group/GroupUpdateConversationDto.cs index c92dd9c..e327f4d 100644 --- a/backend/IM_API/Dtos/Group/GroupUpdateConversationDto.cs +++ b/backend/IM_API/Dtos/Group/GroupUpdateConversationDto.cs @@ -1,11 +1,11 @@ -namespace IM_API.Dtos.Group -{ - public class GroupUpdateConversationDto - { - public int GroupId { get; set; } - public long MaxSequenceId { get; set; } - public string LastMessage { get; set; } - public string LastSenderName { get; set; } - public DateTimeOffset LastUpdateTime { get; set; } - } -} +namespace IM_API.Dtos.Group +{ + public class GroupUpdateConversationDto + { + public int GroupId { get; set; } + public long MaxSequenceId { get; set; } + public string LastMessage { get; set; } + public string LastSenderName { get; set; } + public DateTimeOffset LastUpdateTime { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Group/HandleGroupInviteDto.cs b/backend/IM_API/Dtos/Group/HandleGroupInviteDto.cs index 038a4bd..f9e359f 100644 --- a/backend/IM_API/Dtos/Group/HandleGroupInviteDto.cs +++ b/backend/IM_API/Dtos/Group/HandleGroupInviteDto.cs @@ -1,10 +1,10 @@ -using IM_API.Models; - -namespace IM_API.Dtos.Group -{ - public class HandleGroupInviteDto - { - public int InviteId { get; set; } - public GroupInviteState Action { get; set; } - } -} +using IM_API.Models; + +namespace IM_API.Dtos.Group +{ + public class HandleGroupInviteDto + { + public int InviteId { get; set; } + public GroupInviteState Action { get; set; } + } +} diff --git a/backend/IM_API/Dtos/Group/HandleGroupRequestDto.cs b/backend/IM_API/Dtos/Group/HandleGroupRequestDto.cs index 566739c..d4abbcd 100644 --- a/backend/IM_API/Dtos/Group/HandleGroupRequestDto.cs +++ b/backend/IM_API/Dtos/Group/HandleGroupRequestDto.cs @@ -1,10 +1,10 @@ -using IM_API.Models; - -namespace IM_API.Dtos.Group -{ - public class HandleGroupRequestDto - { - public int RequestId { get; set; } - public GroupRequestState Action { get; set; } - } -} +using IM_API.Models; + +namespace IM_API.Dtos.Group +{ + public class HandleGroupRequestDto + { + public int RequestId { get; set; } + public GroupRequestState Action { get; set; } + } +} diff --git a/backend/IM_API/Dtos/HubResponse.cs b/backend/IM_API/Dtos/HubResponse.cs index 18c2c0e..423cac4 100644 --- a/backend/IM_API/Dtos/HubResponse.cs +++ b/backend/IM_API/Dtos/HubResponse.cs @@ -1,49 +1,49 @@ -using IM_API.Tools; - -namespace IM_API.Dtos -{ - public class HubResponse - { - public int Code { get; init; } - public string Method { get; init; } - public HubResponseType Type { get; init; } - public string Message { get; init; } - public T? Data { get; init; } - public HubResponse(string method) - { - Code = CodeDefine.SUCCESS.Code; - Message = CodeDefine.SUCCESS.Message; - Type = HubResponseType.ActionStatus; - Method = method; - } - public HubResponse(string method,T data) - { - Code = CodeDefine.SUCCESS.Code; - Message = CodeDefine.SUCCESS.Message; - Type = HubResponseType.ActionStatus; - Data = data; - Method = method; - } - public HubResponse(CodeDefine codedefine,string method) - { - Code = codedefine.Code; - Method = method; - Message = codedefine.Message; - Type = HubResponseType.ActionStatus; - } - public HubResponse(CodeDefine codeDefine, string method, HubResponseType type, T? data) - { - Code = codeDefine.Code; - Method = method; - Type = type; - Message = codeDefine.Message; - Data = data; - } - } - public enum HubResponseType - { - ChatMsg = 1, // 聊天内容 - SystemNotice = 2, // 系统通知(如:申请好友成功) - ActionStatus = 3 // 状态变更(如:对方正在输入、已读回执) - } -} +using IM_API.Tools; + +namespace IM_API.Dtos +{ + public class HubResponse + { + public int Code { get; init; } + public string Method { get; init; } + public HubResponseType Type { get; init; } + public string Message { get; init; } + public T? Data { get; init; } + public HubResponse(string method) + { + Code = CodeDefine.SUCCESS.Code; + Message = CodeDefine.SUCCESS.Message; + Type = HubResponseType.ActionStatus; + Method = method; + } + public HubResponse(string method,T data) + { + Code = CodeDefine.SUCCESS.Code; + Message = CodeDefine.SUCCESS.Message; + Type = HubResponseType.ActionStatus; + Data = data; + Method = method; + } + public HubResponse(CodeDefine codedefine,string method) + { + Code = codedefine.Code; + Method = method; + Message = codedefine.Message; + Type = HubResponseType.ActionStatus; + } + public HubResponse(CodeDefine codeDefine, string method, HubResponseType type, T? data) + { + Code = codeDefine.Code; + Method = method; + Type = type; + Message = codeDefine.Message; + Data = data; + } + } + public enum HubResponseType + { + ChatMsg = 1, // 聊天内容 + SystemNotice = 2, // 系统通知(如:申请好友成功) + ActionStatus = 3 // 状态变更(如:对方正在输入、已读回执) + } +} diff --git a/backend/IM_API/Dtos/Message/MessageQueryDto.cs b/backend/IM_API/Dtos/Message/MessageQueryDto.cs index 607ec1f..f70c28b 100644 --- a/backend/IM_API/Dtos/Message/MessageQueryDto.cs +++ b/backend/IM_API/Dtos/Message/MessageQueryDto.cs @@ -1,18 +1,18 @@ -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.Message -{ - public class MessageQueryDto - { - [Required(ErrorMessage = "会话ID必填")] - public int ConversationId { get; set; } - - // 锚点序号(如果为空,说明是第一次进聊天框,拉最新的) - public long? Cursor { get; set; } - - // 查询方向:0 - 查旧(Before), 1 - 查新(After) - public int Direction { get; set; } = 0; - - public int Limit { get; set; } = 20; - } -} +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.Message +{ + public class MessageQueryDto + { + [Required(ErrorMessage = "会话ID必填")] + public int ConversationId { get; set; } + + // 锚点序号(如果为空,说明是第一次进聊天框,拉最新的) + public long? Cursor { get; set; } + + // 查询方向:0 - 查旧(Before), 1 - 查新(After) + public int Direction { get; set; } = 0; + + public int Limit { get; set; } = 20; + } +} diff --git a/backend/IM_API/Dtos/MessageDto.cs b/backend/IM_API/Dtos/MessageDto.cs index 3606c48..09d672e 100644 --- a/backend/IM_API/Dtos/MessageDto.cs +++ b/backend/IM_API/Dtos/MessageDto.cs @@ -1,17 +1,17 @@ -using IM_API.Models; - -namespace IM_API.Dtos -{ - public record MessageBaseDto - { - // 使用 { get; init; } 确保对象创建后不可修改,且支持无参构造 - public MessageMsgType Type { get; init; } = default!; - public ChatType ChatType { get; init; } = default!; - public Guid MsgId { get; init; } - public int SenderId { get; init; } - public int ReceiverId { get; init; } - public string Content { get; init; } = default!; - public DateTimeOffset TimeStamp { get; init; } - public MessageBaseDto() { } - } -} +using IM_API.Models; + +namespace IM_API.Dtos +{ + public record MessageBaseDto + { + // 使用 { get; init; } 确保对象创建后不可修改,且支持无参构造 + public MessageMsgType Type { get; init; } = default!; + public ChatType ChatType { get; init; } = default!; + public Guid MsgId { get; init; } + public int SenderId { get; init; } + public int ReceiverId { get; init; } + public string Content { get; init; } = default!; + public DateTimeOffset TimeStamp { get; init; } + public MessageBaseDto() { } + } +} diff --git a/backend/IM_API/Dtos/SignalRResponseDto.cs b/backend/IM_API/Dtos/SignalRResponseDto.cs index f34f09e..6c0eabb 100644 --- a/backend/IM_API/Dtos/SignalRResponseDto.cs +++ b/backend/IM_API/Dtos/SignalRResponseDto.cs @@ -1,66 +1,66 @@ -using IM_API.Tools; - -namespace IM_API.Dtos -{ - public class SignalRResponseDto - { - public string Type { get; set; } - public string Message { get; set; } - public int Code { get; set; } - public string Status { get; set; } - public SignalRResponseDto(SignalRResponseType type,CodeDefine codeDefine) - { - this.Type = type.ToString(); - this.Code = codeDefine.Code; - this.Message = codeDefine.Message; - this.Status = codeDefine.Message; - } - public SignalRResponseDto(SignalRResponseType type) - { - this.Type = type.ToString(); - this.Code = CodeDefine.SUCCESS.Code; - this.Message = CodeDefine.SUCCESS.Message; - this.Status = CodeDefine.SUCCESS.Message; - } - } - - public enum SignalRResponseType - { - /// - /// 消息 - /// - MESSAGE = 0, - /// - /// 鉴权 - /// - AUTH = 1, - /// - /// 心跳 - /// - HEARTBEAT = 2, - /// - /// 消息回执 - /// - MESSAGE_ACK = 3, - /// - /// 消息撤回 - /// - MESSAGE_RECALL = 4, - /// - /// 好友请求 - /// - FRIEND_REQUEST = 5, - /// - /// 群邀请 - /// - GROUP_INVITE = 6, - /// - /// 系统通知 - /// - SYSTEM_NOTICE = 7, - /// - /// 错误 - /// - ERROR = 8 - } -} +using IM_API.Tools; + +namespace IM_API.Dtos +{ + public class SignalRResponseDto + { + public string Type { get; set; } + public string Message { get; set; } + public int Code { get; set; } + public string Status { get; set; } + public SignalRResponseDto(SignalRResponseType type,CodeDefine codeDefine) + { + this.Type = type.ToString(); + this.Code = codeDefine.Code; + this.Message = codeDefine.Message; + this.Status = codeDefine.Message; + } + public SignalRResponseDto(SignalRResponseType type) + { + this.Type = type.ToString(); + this.Code = CodeDefine.SUCCESS.Code; + this.Message = CodeDefine.SUCCESS.Message; + this.Status = CodeDefine.SUCCESS.Message; + } + } + + public enum SignalRResponseType + { + /// + /// 消息 + /// + MESSAGE = 0, + /// + /// 鉴权 + /// + AUTH = 1, + /// + /// 心跳 + /// + HEARTBEAT = 2, + /// + /// 消息回执 + /// + MESSAGE_ACK = 3, + /// + /// 消息撤回 + /// + MESSAGE_RECALL = 4, + /// + /// 好友请求 + /// + FRIEND_REQUEST = 5, + /// + /// 群邀请 + /// + GROUP_INVITE = 6, + /// + /// 系统通知 + /// + SYSTEM_NOTICE = 7, + /// + /// 错误 + /// + ERROR = 8 + } +} diff --git a/backend/IM_API/Dtos/TestDto.cs b/backend/IM_API/Dtos/TestDto.cs index bd689d6..5447b72 100644 --- a/backend/IM_API/Dtos/TestDto.cs +++ b/backend/IM_API/Dtos/TestDto.cs @@ -1,8 +1,8 @@ -namespace IM_API.Dtos -{ - public class TestDto - { - public int Id { get; set; } - public string Name { get; set; } - } -} +namespace IM_API.Dtos +{ + public class TestDto + { + public int Id { get; set; } + public string Name { get; set; } + } +} diff --git a/backend/IM_API/Dtos/User/UpdateUserDto.cs b/backend/IM_API/Dtos/User/UpdateUserDto.cs index 4ac40f2..c48efa1 100644 --- a/backend/IM_API/Dtos/User/UpdateUserDto.cs +++ b/backend/IM_API/Dtos/User/UpdateUserDto.cs @@ -1,12 +1,12 @@ -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.User -{ - public class UpdateUserDto - { - [MaxLength(20, ErrorMessage = "昵称不能超过50字符")] - public string? NickName { get; set; } - public string? Avatar { get; set; } - - } -} +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.User +{ + public class UpdateUserDto + { + [MaxLength(20, ErrorMessage = "昵称不能超过50字符")] + public string? NickName { get; set; } + public string? Avatar { get; set; } + + } +} diff --git a/backend/IM_API/Dtos/User/UserDto.cs b/backend/IM_API/Dtos/User/UserDto.cs index d8a1a57..5191d8d 100644 --- a/backend/IM_API/Dtos/User/UserDto.cs +++ b/backend/IM_API/Dtos/User/UserDto.cs @@ -1,21 +1,21 @@ -using IM_API.Models; -using System.ComponentModel.DataAnnotations; - -namespace IM_API.Dtos.User -{ - public record PasswordResetDto - { - [Required(ErrorMessage = "旧密码不能为空")] - public string OldPassword { get; init; } - - [Required(ErrorMessage = "新密码不能为空")] - [MaxLength(50, ErrorMessage = "密码不能超过50个字符")] - public string Password { get; init; } - } - - public record OnlineStatusSetDto - { - [Required] - public UserOnlineStatus OnlineStatus { get; init; } - } -} +using IM_API.Models; +using System.ComponentModel.DataAnnotations; + +namespace IM_API.Dtos.User +{ + public record PasswordResetDto + { + [Required(ErrorMessage = "旧密码不能为空")] + public string OldPassword { get; init; } + + [Required(ErrorMessage = "新密码不能为空")] + [MaxLength(50, ErrorMessage = "密码不能超过50个字符")] + public string Password { get; init; } + } + + public record OnlineStatusSetDto + { + [Required] + public UserOnlineStatus OnlineStatus { get; init; } + } +} diff --git a/backend/IM_API/Dtos/User/UserInfoDto.cs b/backend/IM_API/Dtos/User/UserInfoDto.cs index e530be6..de64ab7 100644 --- a/backend/IM_API/Dtos/User/UserInfoDto.cs +++ b/backend/IM_API/Dtos/User/UserInfoDto.cs @@ -1,43 +1,43 @@ -using IM_API.Models; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Dtos.User -{ - public class UserInfoDto - { - public int Id { get; set; } - - /// - /// 唯一用户名 - /// - public string Username { get; set; } - - /// - /// 用户昵称 - /// - public string NickName { get; set; } - /// - /// 用户头像 - /// - public string? Avatar { get; set; } - - /// - /// 用户在线状态 - /// 0(默认):不在线 - /// 1:在线 - /// - public UserOnlineStatus OnlineStatusEnum { get; set; } - - /// - /// 创建时间 - /// - public DateTimeOffset Created { get; set; } - - /// - /// 账户状态 - /// (0:未激活,1:正常,2:封禁) - /// - public UserStatus StatusEnum { get; set; } - } -} +using IM_API.Models; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Dtos.User +{ + public class UserInfoDto + { + public int Id { get; set; } + + /// + /// 唯一用户名 + /// + public string Username { get; set; } + + /// + /// 用户昵称 + /// + public string NickName { get; set; } + /// + /// 用户头像 + /// + public string? Avatar { get; set; } + + /// + /// 用户在线状态 + /// 0(默认):不在线 + /// 1:在线 + /// + public UserOnlineStatus OnlineStatusEnum { get; set; } + + /// + /// 创建时间 + /// + public DateTimeOffset Created { get; set; } + + /// + /// 账户状态 + /// (0:未激活,1:正常,2:封禁) + /// + public UserStatus StatusEnum { get; set; } + } +} diff --git a/backend/IM_API/Exceptions/BaseException.cs b/backend/IM_API/Exceptions/BaseException.cs index cafaf70..d828045 100644 --- a/backend/IM_API/Exceptions/BaseException.cs +++ b/backend/IM_API/Exceptions/BaseException.cs @@ -1,17 +1,17 @@ -using IM_API.Tools; - -namespace IM_API.Exceptions -{ - public class BaseException:Exception - { - public int Code { get; set; } - - public BaseException(int code,string message) : base(message) { - this.Code = code; - } - public BaseException(CodeDefine codeDefine) : base(codeDefine.Message) - { - this.Code = codeDefine.Code; - } - } -} +using IM_API.Tools; + +namespace IM_API.Exceptions +{ + public class BaseException:Exception + { + public int Code { get; set; } + + public BaseException(int code,string message) : base(message) { + this.Code = code; + } + public BaseException(CodeDefine codeDefine) : base(codeDefine.Message) + { + this.Code = codeDefine.Code; + } + } +} diff --git a/backend/IM_API/Filters/GlobalExceptionFilter.cs b/backend/IM_API/Filters/GlobalExceptionFilter.cs index e1af44e..d9718bd 100644 --- a/backend/IM_API/Filters/GlobalExceptionFilter.cs +++ b/backend/IM_API/Filters/GlobalExceptionFilter.cs @@ -1,39 +1,39 @@ -using IM_API.Dtos; -using IM_API.Exceptions; -using IM_API.Tools; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.Filters; - -namespace IM_API.Filters -{ - public class GlobalExceptionFilter : IExceptionFilter - { - private readonly ILogger _logger; - public GlobalExceptionFilter(ILogger logger) - { - _logger = logger; - } - - public void OnException(ExceptionContext context) - { - if(context.Exception is BaseException) - { - _logger.LogWarning(context.Exception, context.Exception.Message); - var exception = (BaseException)context.Exception; - BaseResponse res = new BaseResponse( - code:exception.Code, - message: exception.Message, - data:null - ); - context.Result = new JsonResult(res); - } - else - { - _logger.LogError(context.Exception,context.Exception.Message); - BaseResponse res = new BaseResponse(CodeDefine.SYSTEM_ERROR); - context.Result = new JsonResult(res); - } - context.ExceptionHandled = true; - } - } -} +using IM_API.Dtos; +using IM_API.Exceptions; +using IM_API.Tools; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Filters; + +namespace IM_API.Filters +{ + public class GlobalExceptionFilter : IExceptionFilter + { + private readonly ILogger _logger; + public GlobalExceptionFilter(ILogger logger) + { + _logger = logger; + } + + public void OnException(ExceptionContext context) + { + if(context.Exception is BaseException) + { + _logger.LogWarning(context.Exception, context.Exception.Message); + var exception = (BaseException)context.Exception; + BaseResponse res = new BaseResponse( + code:exception.Code, + message: exception.Message, + data:null + ); + context.Result = new JsonResult(res); + } + else + { + _logger.LogError(context.Exception,context.Exception.Message); + BaseResponse res = new BaseResponse(CodeDefine.SYSTEM_ERROR); + context.Result = new JsonResult(res); + } + context.ExceptionHandled = true; + } + } +} diff --git a/backend/IM_API/Hubs/ChatHub.cs b/backend/IM_API/Hubs/ChatHub.cs index 14bd2b8..f1e7f18 100644 --- a/backend/IM_API/Hubs/ChatHub.cs +++ b/backend/IM_API/Hubs/ChatHub.cs @@ -1,90 +1,90 @@ -using AutoMapper; -using IM_API.Application.Interfaces; -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using IM_API.VOs.Message; -using Microsoft.AspNetCore.SignalR; -using StackExchange.Redis; -using System.Security.Claims; - -namespace IM_API.Hubs -{ - public class ChatHub:Hub - { - private IMessageSevice _messageService; - private readonly IConversationService _conversationService; - private readonly IDatabase _redis; - public ChatHub(IMessageSevice messageService, IConversationService conversationService, - IConnectionMultiplexer connectionMultiplexer) - { - _messageService = messageService; - _conversationService = conversationService; - _redis = connectionMultiplexer.GetDatabase(); - } - - public async override Task OnConnectedAsync() - { - if (!Context.User.Identity.IsAuthenticated) - { - Context.Abort(); - return; - } - - //将用户加入已加入聊天的会话组 - string userIdStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); - var keys = await _conversationService.GetUserAllStreamKeyAsync(int.Parse(userIdStr)); - foreach (var key in keys) - { - await Groups.AddToGroupAsync(Context.ConnectionId, key); - } - //储存用户对应的连接id - await _redis.SetAddAsync(RedisKeys.GetConnectionIdKey(userIdStr), Context.ConnectionId); - await base.OnConnectedAsync(); - } - - public override async Task OnDisconnectedAsync(Exception? exception) - { - if (!Context.User.Identity.IsAuthenticated) - { - string useridStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); - await _redis.SetRemoveAsync(RedisKeys.GetConnectionIdKey(useridStr), Context.ConnectionId); - } - await base.OnDisconnectedAsync(exception); - } - public async Task> SendMessage(MessageBaseDto dto) - { - if (!Context.User.Identity.IsAuthenticated) - { - await Clients.Caller.SendAsync("ReceiveMessage", new BaseResponse(CodeDefine.AUTH_FAILED)); - Context.Abort(); - return new HubResponse(CodeDefine.AUTH_FAILED, "SendMessage"); - } - var userIdStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); - MessageBaseVo? msgInfo = null; - if(dto.ChatType == ChatType.PRIVATE) - { - msgInfo = await _messageService.SendPrivateMessageAsync(int.Parse(userIdStr), dto.ReceiverId, dto); - } - else - { - msgInfo = await _messageService.SendGroupMessageAsync(int.Parse(userIdStr), dto.ReceiverId, dto); - } - return new HubResponse("SendMessage", msgInfo); - } - public async Task> ClearUnreadCount(int conversationId) - { - if (!Context.User.Identity.IsAuthenticated) - { - await Clients.Caller.SendAsync("ReceiveMessage", new BaseResponse(CodeDefine.AUTH_FAILED)); - Context.Abort(); - return new HubResponse(CodeDefine.AUTH_FAILED, "ClearUnreadCount"); ; - } - var userIdStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); - await _conversationService.ClearUnreadCountAsync(int.Parse(userIdStr), conversationId); - return new HubResponse("ClearUnreadCount"); - } - } -} +using AutoMapper; +using IM_API.Application.Interfaces; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using IM_API.VOs.Message; +using Microsoft.AspNetCore.SignalR; +using StackExchange.Redis; +using System.Security.Claims; + +namespace IM_API.Hubs +{ + public class ChatHub:Hub + { + private IMessageSevice _messageService; + private readonly IConversationService _conversationService; + private readonly IDatabase _redis; + public ChatHub(IMessageSevice messageService, IConversationService conversationService, + IConnectionMultiplexer connectionMultiplexer) + { + _messageService = messageService; + _conversationService = conversationService; + _redis = connectionMultiplexer.GetDatabase(); + } + + public async override Task OnConnectedAsync() + { + if (!Context.User.Identity.IsAuthenticated) + { + Context.Abort(); + return; + } + + //将用户加入已加入聊天的会话组 + string userIdStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); + var keys = await _conversationService.GetUserAllStreamKeyAsync(int.Parse(userIdStr)); + foreach (var key in keys) + { + await Groups.AddToGroupAsync(Context.ConnectionId, key); + } + //储存用户对应的连接id + await _redis.SetAddAsync(RedisKeys.GetConnectionIdKey(userIdStr), Context.ConnectionId); + await base.OnConnectedAsync(); + } + + public override async Task OnDisconnectedAsync(Exception? exception) + { + if (!Context.User.Identity.IsAuthenticated) + { + string useridStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); + await _redis.SetRemoveAsync(RedisKeys.GetConnectionIdKey(useridStr), Context.ConnectionId); + } + await base.OnDisconnectedAsync(exception); + } + public async Task> SendMessage(MessageBaseDto dto) + { + if (!Context.User.Identity.IsAuthenticated) + { + await Clients.Caller.SendAsync("ReceiveMessage", new BaseResponse(CodeDefine.AUTH_FAILED)); + Context.Abort(); + return new HubResponse(CodeDefine.AUTH_FAILED, "SendMessage"); + } + var userIdStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); + MessageBaseVo? msgInfo = null; + if(dto.ChatType == ChatType.PRIVATE) + { + msgInfo = await _messageService.SendPrivateMessageAsync(int.Parse(userIdStr), dto.ReceiverId, dto); + } + else + { + msgInfo = await _messageService.SendGroupMessageAsync(int.Parse(userIdStr), dto.ReceiverId, dto); + } + return new HubResponse("SendMessage", msgInfo); + } + public async Task> ClearUnreadCount(int conversationId) + { + if (!Context.User.Identity.IsAuthenticated) + { + await Clients.Caller.SendAsync("ReceiveMessage", new BaseResponse(CodeDefine.AUTH_FAILED)); + Context.Abort(); + return new HubResponse(CodeDefine.AUTH_FAILED, "ClearUnreadCount"); ; + } + var userIdStr = Context.User.FindFirstValue(ClaimTypes.NameIdentifier); + await _conversationService.ClearUnreadCountAsync(int.Parse(userIdStr), conversationId); + return new HubResponse("ClearUnreadCount"); + } + } +} diff --git a/backend/IM_API/IM_API.csproj b/backend/IM_API/IM_API.csproj index 6361cdc..6e72693 100644 --- a/backend/IM_API/IM_API.csproj +++ b/backend/IM_API/IM_API.csproj @@ -1,36 +1,36 @@ - - - - net8.0 - enable - enable - 3f396849-59bd-435f-a0cb-351ec0559e70 - Linux - . - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - + + + + net8.0 + enable + enable + 3f396849-59bd-435f-a0cb-351ec0559e70 + Linux + . + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + diff --git a/backend/IM_API/IM_API.csproj.user b/backend/IM_API/IM_API.csproj.user index e5a2ec0..f53a82c 100644 --- a/backend/IM_API/IM_API.csproj.user +++ b/backend/IM_API/IM_API.csproj.user @@ -1,11 +1,11 @@ - - - - http - ApiControllerEmptyScaffolder - root/Common/Api - - - ProjectDebugger - + + + + http + ApiControllerEmptyScaffolder + root/Common/Api + + + ProjectDebugger + \ No newline at end of file diff --git a/backend/IM_API/IM_API.http b/backend/IM_API/IM_API.http index f9d5b75..fce8ec7 100644 --- a/backend/IM_API/IM_API.http +++ b/backend/IM_API/IM_API.http @@ -1,6 +1,6 @@ -@IM_API_HostAddress = http://localhost:5202 - -GET {{IM_API_HostAddress}}/weatherforecast/ -Accept: application/json - -### +@IM_API_HostAddress = http://localhost:5202 + +GET {{IM_API_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/backend/IM_API/IM_API.sln b/backend/IM_API/IM_API.sln index 7559338..a3c1a7b 100644 --- a/backend/IM_API/IM_API.sln +++ b/backend/IM_API/IM_API.sln @@ -1,31 +1,31 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.14.36408.4 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IM_API", "IM_API.csproj", "{F001642C-3E66-4C2C-9A25-1AE5EE76CE97}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IMTest", "..\IMTest\IMTest.csproj", "{9DB9D44A-2D86-45A2-B651-D976277CF324}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Release|Any CPU.Build.0 = Release|Any CPU - {9DB9D44A-2D86-45A2-B651-D976277CF324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9DB9D44A-2D86-45A2-B651-D976277CF324}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9DB9D44A-2D86-45A2-B651-D976277CF324}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9DB9D44A-2D86-45A2-B651-D976277CF324}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {EC36B0B9-6176-4BC7-BF88-33F923E3E777} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36408.4 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IM_API", "IM_API.csproj", "{F001642C-3E66-4C2C-9A25-1AE5EE76CE97}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IMTest", "..\IMTest\IMTest.csproj", "{9DB9D44A-2D86-45A2-B651-D976277CF324}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F001642C-3E66-4C2C-9A25-1AE5EE76CE97}.Release|Any CPU.Build.0 = Release|Any CPU + {9DB9D44A-2D86-45A2-B651-D976277CF324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DB9D44A-2D86-45A2-B651-D976277CF324}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DB9D44A-2D86-45A2-B651-D976277CF324}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DB9D44A-2D86-45A2-B651-D976277CF324}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EC36B0B9-6176-4BC7-BF88-33F923E3E777} + EndGlobalSection +EndGlobal diff --git a/backend/IM_API/Infrastructure/EventBus/InMemoryEventBus.cs b/backend/IM_API/Infrastructure/EventBus/InMemoryEventBus.cs index 45ed2b2..02be426 100644 --- a/backend/IM_API/Infrastructure/EventBus/InMemoryEventBus.cs +++ b/backend/IM_API/Infrastructure/EventBus/InMemoryEventBus.cs @@ -1,32 +1,32 @@ -using IM_API.Application.Interfaces; -using IM_API.Domain.Interfaces; - -namespace IM_API.Infrastructure.EventBus -{ - public class InMemoryEventBus : IEventBus - { - private IServiceProvider _serviceProvider; - private ILogger _logger; - public InMemoryEventBus(IServiceProvider serviceProvider, ILogger logger) - { - _serviceProvider = serviceProvider; - _logger = logger; - } - - public async Task PublishAsync(TEvent @event) where TEvent : IEvent - { - var handlers = _serviceProvider.GetServices>(); - foreach (var handler in handlers) - { - try - { - await handler.Handle(@event); - } - catch(Exception e) - { - _logger.LogError("EventHandler error:"+e.Message, e); - } - } - } - } -} +using IM_API.Application.Interfaces; +using IM_API.Domain.Interfaces; + +namespace IM_API.Infrastructure.EventBus +{ + public class InMemoryEventBus : IEventBus + { + private IServiceProvider _serviceProvider; + private ILogger _logger; + public InMemoryEventBus(IServiceProvider serviceProvider, ILogger logger) + { + _serviceProvider = serviceProvider; + _logger = logger; + } + + public async Task PublishAsync(TEvent @event) where TEvent : IEvent + { + var handlers = _serviceProvider.GetServices>(); + foreach (var handler in handlers) + { + try + { + await handler.Handle(@event); + } + catch(Exception e) + { + _logger.LogError("EventHandler error:"+e.Message, e); + } + } + } + } +} diff --git a/backend/IM_API/Interface/Services/IAuthService.cs b/backend/IM_API/Interface/Services/IAuthService.cs index be275d6..b67a758 100644 --- a/backend/IM_API/Interface/Services/IAuthService.cs +++ b/backend/IM_API/Interface/Services/IAuthService.cs @@ -1,22 +1,22 @@ -using IM_API.Dtos.Auth; -using IM_API.Dtos.User; -using IM_API.Models; - -namespace IM_API.Interface.Services -{ - public interface IAuthService - { - /// - /// 登录 - /// - /// - /// - Task LoginAsync(LoginRequestDto dto); - /// - /// 注册 - /// - /// - /// - Task RegisterAsync(RegisterRequestDto dto); - } -} +using IM_API.Dtos.Auth; +using IM_API.Dtos.User; +using IM_API.Models; + +namespace IM_API.Interface.Services +{ + public interface IAuthService + { + /// + /// 登录 + /// + /// + /// + Task LoginAsync(LoginRequestDto dto); + /// + /// 注册 + /// + /// + /// + Task RegisterAsync(RegisterRequestDto dto); + } +} diff --git a/backend/IM_API/Interface/Services/ICacheService.cs b/backend/IM_API/Interface/Services/ICacheService.cs index 436e606..7713067 100644 --- a/backend/IM_API/Interface/Services/ICacheService.cs +++ b/backend/IM_API/Interface/Services/ICacheService.cs @@ -1,49 +1,49 @@ -using IM_API.Models; - -namespace IM_API.Interface.Services -{ - public interface ICacheService - { - /// - /// 设置缓存 - /// - /// 缓存对象类型 - /// 缓存索引值 - /// 要缓存的对象 - /// 过期时间 - /// - Task SetAsync(string key, T value, TimeSpan? expiration = null); - /// - /// 获取缓存 - /// - /// - /// 缓存索引 - /// - Task GetAsync(string key); - /// - /// 删除缓存 - /// - /// 缓存索引 - /// - Task RemoveAsync(string key); - /// - /// 设置用户缓存 - /// - /// - /// - Task SetUserCacheAsync(User user); - /// - /// 通过用户名获取用户缓存 - /// - /// - /// - Task GetUserCacheAsync(string username); - /// - /// 删除用户缓存 - /// - /// - /// - /// - Task RemoveUserCacheAsync(string username); - } -} +using IM_API.Models; + +namespace IM_API.Interface.Services +{ + public interface ICacheService + { + /// + /// 设置缓存 + /// + /// 缓存对象类型 + /// 缓存索引值 + /// 要缓存的对象 + /// 过期时间 + /// + Task SetAsync(string key, T value, TimeSpan? expiration = null); + /// + /// 获取缓存 + /// + /// + /// 缓存索引 + /// + Task GetAsync(string key); + /// + /// 删除缓存 + /// + /// 缓存索引 + /// + Task RemoveAsync(string key); + /// + /// 设置用户缓存 + /// + /// + /// + Task SetUserCacheAsync(User user); + /// + /// 通过用户名获取用户缓存 + /// + /// + /// + Task GetUserCacheAsync(string username); + /// + /// 删除用户缓存 + /// + /// + /// + /// + Task RemoveUserCacheAsync(string username); + } +} diff --git a/backend/IM_API/Interface/Services/IConversationService.cs b/backend/IM_API/Interface/Services/IConversationService.cs index 5d24fa5..61be9c0 100644 --- a/backend/IM_API/Interface/Services/IConversationService.cs +++ b/backend/IM_API/Interface/Services/IConversationService.cs @@ -1,56 +1,56 @@ -using IM_API.Dtos.Conversation; -using IM_API.Models; -using IM_API.VOs.Conversation; - -namespace IM_API.Interface.Services -{ - public interface IConversationService - { - /// - /// 清除消息会话 - /// - /// - /// - Task ClearConversationsAsync(int userId); - /// - /// 删除单个聊天会话 - /// - /// - /// - Task DeleteConversationAsync(int conversationId); - /// - /// 获取用户当前消息会话 - /// - /// 用户id - /// - Task> GetConversationsAsync(int userId); - /// - /// 获取指定用户的所有推送标识符 - /// - /// - /// - Task> GetUserAllStreamKeyAsync(int userId); - /// - /// 获取单个conversation信息 - /// - /// - /// - Task GetConversationByIdAsync(int userId, int conversationId); - /// - /// 清空未读消息 - /// - /// - /// - /// - Task ClearUnreadCountAsync(int userId, int conversationId); - /// - /// 为用户创建会话 - /// - /// - /// - /// - /// - Task MakeConversationAsync(int userAId, int userBId, ChatType chatType); - Task UpdateConversationAfterSentAsync(UpdateConversationDto dto); - } -} +using IM_API.Dtos.Conversation; +using IM_API.Models; +using IM_API.VOs.Conversation; + +namespace IM_API.Interface.Services +{ + public interface IConversationService + { + /// + /// 清除消息会话 + /// + /// + /// + Task ClearConversationsAsync(int userId); + /// + /// 删除单个聊天会话 + /// + /// + /// + Task DeleteConversationAsync(int conversationId); + /// + /// 获取用户当前消息会话 + /// + /// 用户id + /// + Task> GetConversationsAsync(int userId); + /// + /// 获取指定用户的所有推送标识符 + /// + /// + /// + Task> GetUserAllStreamKeyAsync(int userId); + /// + /// 获取单个conversation信息 + /// + /// + /// + Task GetConversationByIdAsync(int userId, int conversationId); + /// + /// 清空未读消息 + /// + /// + /// + /// + Task ClearUnreadCountAsync(int userId, int conversationId); + /// + /// 为用户创建会话 + /// + /// + /// + /// + /// + Task MakeConversationAsync(int userAId, int userBId, ChatType chatType); + Task UpdateConversationAfterSentAsync(UpdateConversationDto dto); + } +} diff --git a/backend/IM_API/Interface/Services/IFriendSerivce.cs b/backend/IM_API/Interface/Services/IFriendSerivce.cs index b4e29d3..df6b023 100644 --- a/backend/IM_API/Interface/Services/IFriendSerivce.cs +++ b/backend/IM_API/Interface/Services/IFriendSerivce.cs @@ -1,71 +1,71 @@ -using IM_API.Dtos.Friend; -using IM_API.Models; - -namespace IM_API.Interface.Services -{ - public interface IFriendSerivce - { - /// - /// 获取好友列表 - /// - /// 指定用户 - /// 当前页 - /// 分页大小 - /// - Task> GetFriendListAsync(int userId,int page,int limit,bool desc); - /// - /// 新增好友请求 - /// - /// - /// - Task SendFriendRequestAsync(FriendRequestDto friendRequest); - /// - /// 获取好友请求 - /// - /// - /// 是否为接受请求方 - /// - /// - /// - Task> GetFriendRequestListAsync(int userId,int page,int limit, bool desc); - /// - /// 处理好友请求 - /// - /// - /// - Task HandleFriendRequestAsync(HandleFriendRequestDto requestDto); - /// - /// 通过用户Id删除好友关系 - /// - /// 操作用户Id - /// 被删除用户ID - /// - Task DeleteFriendByUserIdAsync(int userId,int toUserId); - /// - /// 通过好友关系Id删除好友关系 - /// - /// 好友关系id - /// - Task DeleteFriendAsync(int friendId); - /// - /// 通过用户Id拉黑好友关系 - /// - /// 操作用户Id - /// 被拉黑用户ID - /// - Task BlockFriendByUserIdAsync(int userId, int toUserId); - /// - /// 通过好友关系Id拉黑好友关系 - /// - /// 好友关系id - /// - Task BlockeFriendAsync(int friendId); - /// - /// 创建好友关系 - /// - /// - /// - /// - Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName); - } -} +using IM_API.Dtos.Friend; +using IM_API.Models; + +namespace IM_API.Interface.Services +{ + public interface IFriendSerivce + { + /// + /// 获取好友列表 + /// + /// 指定用户 + /// 当前页 + /// 分页大小 + /// + Task> GetFriendListAsync(int userId,int page,int limit,bool desc); + /// + /// 新增好友请求 + /// + /// + /// + Task SendFriendRequestAsync(FriendRequestDto friendRequest); + /// + /// 获取好友请求 + /// + /// + /// 是否为接受请求方 + /// + /// + /// + Task> GetFriendRequestListAsync(int userId,int page,int limit, bool desc); + /// + /// 处理好友请求 + /// + /// + /// + Task HandleFriendRequestAsync(HandleFriendRequestDto requestDto); + /// + /// 通过用户Id删除好友关系 + /// + /// 操作用户Id + /// 被删除用户ID + /// + Task DeleteFriendByUserIdAsync(int userId,int toUserId); + /// + /// 通过好友关系Id删除好友关系 + /// + /// 好友关系id + /// + Task DeleteFriendAsync(int friendId); + /// + /// 通过用户Id拉黑好友关系 + /// + /// 操作用户Id + /// 被拉黑用户ID + /// + Task BlockFriendByUserIdAsync(int userId, int toUserId); + /// + /// 通过好友关系Id拉黑好友关系 + /// + /// 好友关系id + /// + Task BlockeFriendAsync(int friendId); + /// + /// 创建好友关系 + /// + /// + /// + /// + Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName); + } +} diff --git a/backend/IM_API/Interface/Services/IGroupService.cs b/backend/IM_API/Interface/Services/IGroupService.cs index 1b80b62..ad788f5 100644 --- a/backend/IM_API/Interface/Services/IGroupService.cs +++ b/backend/IM_API/Interface/Services/IGroupService.cs @@ -1,55 +1,55 @@ -using IM_API.Dtos.Group; -using IM_API.Models; - -namespace IM_API.Interface.Services -{ - public interface IGroupService - { - /// - /// 邀请好友入群 - /// - /// 操作者ID - /// 群ID - /// 邀请的用户列表 - /// - Task InviteUsersAsync(int userId,int groupId, List userIds); - /// - /// 加入群聊 - /// - /// 操作者ID - /// 群ID - /// - Task JoinGroupAsync(int userId,int groupId); - /// - /// 创建群聊 - /// - /// 操作者ID - /// 群信息 - /// 邀请用户列表 - /// - Task CreateGroupAsync(int userId, GroupCreateDto groupCreateDto); - /// - /// 删除群 - /// - /// 操作者ID - /// 群ID - /// - Task DeleteGroupAsync(int userId, int groupId); - /// - /// 获取当前用户群列表 - /// - /// 操作者ID - /// - /// - /// - /// - Task> GetGroupListAsync(int userId, int page, int limit, bool desc); - - Task UpdateGroupConversationAsync(GroupUpdateConversationDto dto); - - Task HandleGroupInviteAsync(int userid, HandleGroupInviteDto dto); - Task HandleGroupRequestAsync(int userid, HandleGroupRequestDto dto); - Task MakeGroupRequestAsync(int userId,int? adminUserId,int groupId); - Task MakeGroupMemberAsync(int userId, int groupId, GroupMemberRole? role); - } -} +using IM_API.Dtos.Group; +using IM_API.Models; + +namespace IM_API.Interface.Services +{ + public interface IGroupService + { + /// + /// 邀请好友入群 + /// + /// 操作者ID + /// 群ID + /// 邀请的用户列表 + /// + Task InviteUsersAsync(int userId,int groupId, List userIds); + /// + /// 加入群聊 + /// + /// 操作者ID + /// 群ID + /// + Task JoinGroupAsync(int userId,int groupId); + /// + /// 创建群聊 + /// + /// 操作者ID + /// 群信息 + /// 邀请用户列表 + /// + Task CreateGroupAsync(int userId, GroupCreateDto groupCreateDto); + /// + /// 删除群 + /// + /// 操作者ID + /// 群ID + /// + Task DeleteGroupAsync(int userId, int groupId); + /// + /// 获取当前用户群列表 + /// + /// 操作者ID + /// + /// + /// + /// + Task> GetGroupListAsync(int userId, int page, int limit, bool desc); + + Task UpdateGroupConversationAsync(GroupUpdateConversationDto dto); + + Task HandleGroupInviteAsync(int userid, HandleGroupInviteDto dto); + Task HandleGroupRequestAsync(int userid, HandleGroupRequestDto dto); + Task MakeGroupRequestAsync(int userId,int? adminUserId,int groupId); + Task MakeGroupMemberAsync(int userId, int groupId, GroupMemberRole? role); + } +} diff --git a/backend/IM_API/Interface/Services/IJWTService.cs b/backend/IM_API/Interface/Services/IJWTService.cs index 202d444..2211e62 100644 --- a/backend/IM_API/Interface/Services/IJWTService.cs +++ b/backend/IM_API/Interface/Services/IJWTService.cs @@ -1,21 +1,21 @@ -using System.Security.Claims; - -namespace IM_API.Interface.Services -{ - public interface IJWTService - { - /// - /// 生成用户凭证 - /// - /// 负载 - /// 过期时间 - /// - string GenerateAccessToken(IEnumerable claims, DateTime expiresAt); - /// - /// 创建用户凭证 - /// - /// - /// - (string token, DateTime expiresAt) CreateAccessTokenForUser(int userId,string username,string role); - } -} +using System.Security.Claims; + +namespace IM_API.Interface.Services +{ + public interface IJWTService + { + /// + /// 生成用户凭证 + /// + /// 负载 + /// 过期时间 + /// + string GenerateAccessToken(IEnumerable claims, DateTime expiresAt); + /// + /// 创建用户凭证 + /// + /// + /// + (string token, DateTime expiresAt) CreateAccessTokenForUser(int userId,string username,string role); + } +} diff --git a/backend/IM_API/Interface/Services/IMessageSevice.cs b/backend/IM_API/Interface/Services/IMessageSevice.cs index 3f82049..d9f6978 100644 --- a/backend/IM_API/Interface/Services/IMessageSevice.cs +++ b/backend/IM_API/Interface/Services/IMessageSevice.cs @@ -1,53 +1,53 @@ -using IM_API.Dtos; -using IM_API.Dtos.Message; -using IM_API.Models; -using IM_API.VOs.Message; - -namespace IM_API.Interface.Services -{ - public interface IMessageSevice - { - /// - /// 发送私聊消息 - /// - /// 发送人id - /// 接收人 - /// - /// - Task SendPrivateMessageAsync(int senderId,int receiverId,MessageBaseDto dto); - /// - /// 发送群聊消息 - /// - /// 发送人id - /// 接收群id - /// - /// - Task SendGroupMessageAsync(int senderId,int groupId,MessageBaseDto dto); - /// - /// 消息入库 - /// - /// - /// - Task MakeMessageAsync(Message message); - /// - /// 获取历史消息列表 - /// - /// 会话id(用于获取指定用户间聊天消息) - /// 消息id - /// 获取消息数量 - /// - Task> GetMessagesAsync(int userId,MessageQueryDto dto); - /// - /// 获取未读消息数 - /// - /// - /// - Task GetUnreadCountAsync(int userId); - Task> GetUnreadMessagesAsync(int userId); - Task MarkAsReadAsync(int userId,long messageId); - Task MarkConversationAsReadAsync(int userId,int? userBId,int? groupId); - Task RecallMessageAsync(int userId,int messageId); - - - } -} +using IM_API.Dtos; +using IM_API.Dtos.Message; +using IM_API.Models; +using IM_API.VOs.Message; + +namespace IM_API.Interface.Services +{ + public interface IMessageSevice + { + /// + /// 发送私聊消息 + /// + /// 发送人id + /// 接收人 + /// + /// + Task SendPrivateMessageAsync(int senderId,int receiverId,MessageBaseDto dto); + /// + /// 发送群聊消息 + /// + /// 发送人id + /// 接收群id + /// + /// + Task SendGroupMessageAsync(int senderId,int groupId,MessageBaseDto dto); + /// + /// 消息入库 + /// + /// + /// + Task MakeMessageAsync(Message message); + /// + /// 获取历史消息列表 + /// + /// 会话id(用于获取指定用户间聊天消息) + /// 消息id + /// 获取消息数量 + /// + Task> GetMessagesAsync(int userId,MessageQueryDto dto); + /// + /// 获取未读消息数 + /// + /// + /// + Task GetUnreadCountAsync(int userId); + Task> GetUnreadMessagesAsync(int userId); + Task MarkAsReadAsync(int userId,long messageId); + Task MarkConversationAsReadAsync(int userId,int? userBId,int? groupId); + Task RecallMessageAsync(int userId,int messageId); + + + } +} diff --git a/backend/IM_API/Interface/Services/IRefreshTokenService.cs b/backend/IM_API/Interface/Services/IRefreshTokenService.cs index 3133fc9..b544dd6 100644 --- a/backend/IM_API/Interface/Services/IRefreshTokenService.cs +++ b/backend/IM_API/Interface/Services/IRefreshTokenService.cs @@ -1,27 +1,27 @@ -namespace IM_API.Interface.Services -{ - public interface IRefreshTokenService - { - /// - /// 创建刷新令牌 - /// - /// - /// - /// - Task CreateRefreshTokenAsync(int userId, CancellationToken ct = default); - /// - /// 验证刷新令牌 - /// - /// 刷新令牌 - /// - /// - Task<(bool ok, int userId)> ValidateRefreshTokenAsync(string token, CancellationToken ct = default); - /// - /// 删除更新令牌 - /// - /// 刷新令牌 - /// - /// - Task RevokeRefreshTokenAsync(string token, CancellationToken ct = default); - } -} +namespace IM_API.Interface.Services +{ + public interface IRefreshTokenService + { + /// + /// 创建刷新令牌 + /// + /// + /// + /// + Task CreateRefreshTokenAsync(int userId, CancellationToken ct = default); + /// + /// 验证刷新令牌 + /// + /// 刷新令牌 + /// + /// + Task<(bool ok, int userId)> ValidateRefreshTokenAsync(string token, CancellationToken ct = default); + /// + /// 删除更新令牌 + /// + /// 刷新令牌 + /// + /// + Task RevokeRefreshTokenAsync(string token, CancellationToken ct = default); + } +} diff --git a/backend/IM_API/Interface/Services/ISequenceIdService.cs b/backend/IM_API/Interface/Services/ISequenceIdService.cs index f18fe58..5360d0e 100644 --- a/backend/IM_API/Interface/Services/ISequenceIdService.cs +++ b/backend/IM_API/Interface/Services/ISequenceIdService.cs @@ -1,12 +1,12 @@ -namespace IM_API.Interface.Services -{ - public interface ISequenceIdService - { - /// - /// 创建消息序号 - /// - /// 聊天唯一标识/param> - /// - Task GetNextSquenceIdAsync(string streamKey); - } -} +namespace IM_API.Interface.Services +{ + public interface ISequenceIdService + { + /// + /// 创建消息序号 + /// + /// 聊天唯一标识/param> + /// + Task GetNextSquenceIdAsync(string streamKey); + } +} diff --git a/backend/IM_API/Interface/Services/IUserService.cs b/backend/IM_API/Interface/Services/IUserService.cs index 68a5d38..065a226 100644 --- a/backend/IM_API/Interface/Services/IUserService.cs +++ b/backend/IM_API/Interface/Services/IUserService.cs @@ -1,45 +1,45 @@ -using IM_API.Dtos.User; -using IM_API.Models; - -namespace IM_API.Interface.Services -{ - public interface IUserService - { - /// - /// 获取用户信息 - /// - /// - /// - Task GetUserInfoAsync(int userId); - /// - /// 用户名查找用户 - /// - /// - /// - Task GetUserInfoByUsernameAsync(string username); - /// - /// 更新用户信息 - /// - /// - /// - Task UpdateUserAsync(int userId, UpdateUserDto dto); - /// - /// 重置用户密码 - /// - /// - /// - Task ResetPasswordAsync(int userId, string oldPassword, string password); - /// - /// 更新用户在线状态 - /// - /// - /// - Task UpdateOlineStatusAsync(int userId, UserOnlineStatus onlineStatus); - /// - /// 批量获取用户信息 - /// - /// 用户id列表 - /// - Task> GetUserInfoListAsync(List ids); - } -} +using IM_API.Dtos.User; +using IM_API.Models; + +namespace IM_API.Interface.Services +{ + public interface IUserService + { + /// + /// 获取用户信息 + /// + /// + /// + Task GetUserInfoAsync(int userId); + /// + /// 用户名查找用户 + /// + /// + /// + Task GetUserInfoByUsernameAsync(string username); + /// + /// 更新用户信息 + /// + /// + /// + Task UpdateUserAsync(int userId, UpdateUserDto dto); + /// + /// 重置用户密码 + /// + /// + /// + Task ResetPasswordAsync(int userId, string oldPassword, string password); + /// + /// 更新用户在线状态 + /// + /// + /// + Task UpdateOlineStatusAsync(int userId, UserOnlineStatus onlineStatus); + /// + /// 批量获取用户信息 + /// + /// 用户id列表 + /// + Task> GetUserInfoListAsync(List ids); + } +} diff --git a/backend/IM_API/Migrations/20260204140029_InitialCreate.Designer.cs b/backend/IM_API/Migrations/20260204140029_InitialCreate.Designer.cs index 387b874..00654b7 100644 --- a/backend/IM_API/Migrations/20260204140029_InitialCreate.Designer.cs +++ b/backend/IM_API/Migrations/20260204140029_InitialCreate.Designer.cs @@ -1,1094 +1,1094 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260204140029_InitialCreate")] - partial class InitialCreate - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadMessageId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Type") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("GroupMemberId") - .HasColumnType("int(11)") - .HasComment("若为群消息则表示具体的成员id"); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", "LastReadMessage") - .WithMany("Conversations") - .HasForeignKey("LastReadMessageId") - .HasConstraintName("conversations_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("LastReadMessage"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260204140029_InitialCreate")] + partial class InitialCreate + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadMessageId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Type") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("GroupMemberId") + .HasColumnType("int(11)") + .HasComment("若为群消息则表示具体的成员id"); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", "LastReadMessage") + .WithMany("Conversations") + .HasForeignKey("LastReadMessageId") + .HasConstraintName("conversations_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("LastReadMessage"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260204140029_InitialCreate.cs b/backend/IM_API/Migrations/20260204140029_InitialCreate.cs index 2ba062e..0782db0 100644 --- a/backend/IM_API/Migrations/20260204140029_InitialCreate.cs +++ b/backend/IM_API/Migrations/20260204140029_InitialCreate.cs @@ -1,73 +1,73 @@ -using System; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class InitialCreate : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "admins"); - - migrationBuilder.DropTable( - name: "conversations"); - - migrationBuilder.DropTable( - name: "devices"); - - migrationBuilder.DropTable( - name: "files"); - - migrationBuilder.DropTable( - name: "friend_request"); - - migrationBuilder.DropTable( - name: "friends"); - - migrationBuilder.DropTable( - name: "group_invite"); - - migrationBuilder.DropTable( - name: "group_member"); - - migrationBuilder.DropTable( - name: "group_request"); - - migrationBuilder.DropTable( - name: "login_log"); - - migrationBuilder.DropTable( - name: "notifications"); - - migrationBuilder.DropTable( - name: "permissionarole"); - - migrationBuilder.DropTable( - name: "messages"); - - migrationBuilder.DropTable( - name: "groups"); - - migrationBuilder.DropTable( - name: "roles"); - - migrationBuilder.DropTable( - name: "permissions"); - - migrationBuilder.DropTable( - name: "users"); - } - } -} +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class InitialCreate : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "admins"); + + migrationBuilder.DropTable( + name: "conversations"); + + migrationBuilder.DropTable( + name: "devices"); + + migrationBuilder.DropTable( + name: "files"); + + migrationBuilder.DropTable( + name: "friend_request"); + + migrationBuilder.DropTable( + name: "friends"); + + migrationBuilder.DropTable( + name: "group_invite"); + + migrationBuilder.DropTable( + name: "group_member"); + + migrationBuilder.DropTable( + name: "group_request"); + + migrationBuilder.DropTable( + name: "login_log"); + + migrationBuilder.DropTable( + name: "notifications"); + + migrationBuilder.DropTable( + name: "permissionarole"); + + migrationBuilder.DropTable( + name: "messages"); + + migrationBuilder.DropTable( + name: "groups"); + + migrationBuilder.DropTable( + name: "roles"); + + migrationBuilder.DropTable( + name: "permissions"); + + migrationBuilder.DropTable( + name: "users"); + } + } +} diff --git a/backend/IM_API/Migrations/20260204140708_change_file.Designer.cs b/backend/IM_API/Migrations/20260204140708_change_file.Designer.cs index 608a65f..3a369c7 100644 --- a/backend/IM_API/Migrations/20260204140708_change_file.Designer.cs +++ b/backend/IM_API/Migrations/20260204140708_change_file.Designer.cs @@ -1,1094 +1,1094 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260204140708_change_file")] - partial class change_file - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadMessageId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("GroupMemberId") - .HasColumnType("int(11)") - .HasComment("若为群消息则表示具体的成员id"); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", "LastReadMessage") - .WithMany("Conversations") - .HasForeignKey("LastReadMessageId") - .HasConstraintName("conversations_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("LastReadMessage"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260204140708_change_file")] + partial class change_file + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadMessageId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("GroupMemberId") + .HasColumnType("int(11)") + .HasComment("若为群消息则表示具体的成员id"); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", "LastReadMessage") + .WithMany("Conversations") + .HasForeignKey("LastReadMessageId") + .HasConstraintName("conversations_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("LastReadMessage"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260204140708_change_file.cs b/backend/IM_API/Migrations/20260204140708_change_file.cs index 90bc8f7..6da08cd 100644 --- a/backend/IM_API/Migrations/20260204140708_change_file.cs +++ b/backend/IM_API/Migrations/20260204140708_change_file.cs @@ -1,28 +1,28 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class change_file : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.RenameColumn( - name: "Type", - table: "files", - newName: "FileType"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.RenameColumn( - name: "FileType", - table: "files", - newName: "Type"); - } - } -} +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class change_file : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "Type", + table: "files", + newName: "FileType"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "FileType", + table: "files", + newName: "Type"); + } + } +} diff --git a/backend/IM_API/Migrations/20260204150644_add-SequenceId.Designer.cs b/backend/IM_API/Migrations/20260204150644_add-SequenceId.Designer.cs index 7c6b3e6..526236e 100644 --- a/backend/IM_API/Migrations/20260204150644_add-SequenceId.Designer.cs +++ b/backend/IM_API/Migrations/20260204150644_add-SequenceId.Designer.cs @@ -1,1093 +1,1093 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260204150644_add-SequenceId")] - partial class addSequenceId - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadMessageId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", "LastReadMessage") - .WithMany("Conversations") - .HasForeignKey("LastReadMessageId") - .HasConstraintName("conversations_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("LastReadMessage"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260204150644_add-SequenceId")] + partial class addSequenceId + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadMessageId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", "LastReadMessage") + .WithMany("Conversations") + .HasForeignKey("LastReadMessageId") + .HasConstraintName("conversations_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("LastReadMessage"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260204150644_add-SequenceId.cs b/backend/IM_API/Migrations/20260204150644_add-SequenceId.cs index 4940eda..6e40327 100644 --- a/backend/IM_API/Migrations/20260204150644_add-SequenceId.cs +++ b/backend/IM_API/Migrations/20260204150644_add-SequenceId.cs @@ -1,40 +1,40 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class addSequenceId : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "GroupMemberId", - table: "messages"); - - migrationBuilder.AddColumn( - name: "SequenceId", - table: "messages", - type: "bigint", - nullable: false, - defaultValue: 0L); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "SequenceId", - table: "messages"); - - migrationBuilder.AddColumn( - name: "GroupMemberId", - table: "messages", - type: "int(11)", - nullable: true, - comment: "若为群消息则表示具体的成员id"); - } - } -} +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class addSequenceId : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "GroupMemberId", + table: "messages"); + + migrationBuilder.AddColumn( + name: "SequenceId", + table: "messages", + type: "bigint", + nullable: false, + defaultValue: 0L); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "SequenceId", + table: "messages"); + + migrationBuilder.AddColumn( + name: "GroupMemberId", + table: "messages", + type: "int(11)", + nullable: true, + comment: "若为群消息则表示具体的成员id"); + } + } +} diff --git a/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.Designer.cs b/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.Designer.cs index 463cba6..e43a946 100644 --- a/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.Designer.cs +++ b/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.Designer.cs @@ -1,1094 +1,1094 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260204151306_update-conversation-lastreadmessageid")] - partial class updateconversationlastreadmessageid - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadMessageId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", "LastReadMessage") - .WithMany("Conversations") - .HasForeignKey("LastReadMessageId") - .OnDelete(DeleteBehavior.SetNull) - .HasConstraintName("conversations_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("LastReadMessage"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260204151306_update-conversation-lastreadmessageid")] + partial class updateconversationlastreadmessageid + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadMessageId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.HasIndex(new[] { "LastReadMessageId" }, "lastMessageId"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", "LastReadMessage") + .WithMany("Conversations") + .HasForeignKey("LastReadMessageId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("conversations_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("LastReadMessage"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.cs b/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.cs index 70dc218..bf4e83c 100644 --- a/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.cs +++ b/backend/IM_API/Migrations/20260204151306_update-conversation-lastreadmessageid.cs @@ -1,41 +1,41 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class updateconversationlastreadmessageid : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "conversations_ibfk_2", - table: "conversations"); - - migrationBuilder.AddForeignKey( - name: "conversations_ibfk_2", - table: "conversations", - column: "lastReadMessageId", - principalTable: "messages", - principalColumn: "ID", - onDelete: ReferentialAction.SetNull); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "conversations_ibfk_2", - table: "conversations"); - - migrationBuilder.AddForeignKey( - name: "conversations_ibfk_2", - table: "conversations", - column: "lastReadMessageId", - principalTable: "messages", - principalColumn: "ID"); - } - } -} +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class updateconversationlastreadmessageid : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "conversations_ibfk_2", + table: "conversations"); + + migrationBuilder.AddForeignKey( + name: "conversations_ibfk_2", + table: "conversations", + column: "lastReadMessageId", + principalTable: "messages", + principalColumn: "ID", + onDelete: ReferentialAction.SetNull); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "conversations_ibfk_2", + table: "conversations"); + + migrationBuilder.AddForeignKey( + name: "conversations_ibfk_2", + table: "conversations", + column: "lastReadMessageId", + principalTable: "messages", + principalColumn: "ID"); + } + } +} diff --git a/backend/IM_API/Migrations/20260205132459_update-message.Designer.cs b/backend/IM_API/Migrations/20260205132459_update-message.Designer.cs index 2b1f3d6..f70d1e7 100644 --- a/backend/IM_API/Migrations/20260205132459_update-message.Designer.cs +++ b/backend/IM_API/Migrations/20260205132459_update-message.Designer.cs @@ -1,1101 +1,1101 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260205132459_update-message")] - partial class updatemessage - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadSequenceId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("MessageId") - .HasColumnType("int(11)"); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("MessageId"); - - b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("ClientMsgId") - .HasColumnType("char(36)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("SequenceId", "StreamKey") - .IsUnique(); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", null) - .WithMany("Conversations") - .HasForeignKey("MessageId"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260205132459_update-message")] + partial class updatemessage + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260205132459_update-message.cs b/backend/IM_API/Migrations/20260205132459_update-message.cs index 6ff456a..91d42b7 100644 --- a/backend/IM_API/Migrations/20260205132459_update-message.cs +++ b/backend/IM_API/Migrations/20260205132459_update-message.cs @@ -1,93 +1,93 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class updatemessage : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "conversations_ibfk_2", - table: "conversations"); - - migrationBuilder.RenameIndex( - name: "lastMessageId", - table: "conversations", - newName: "LastReadSequenceId"); - - migrationBuilder.AddColumn( - name: "ClientMsgId", - table: "messages", - type: "char(36)", - nullable: false, - defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), - collation: "ascii_general_ci"); - - migrationBuilder.AddColumn( - name: "MessageId", - table: "conversations", - type: "int(11)", - nullable: true); - - migrationBuilder.CreateIndex( - name: "IX_messages_SequenceId_StreamKey", - table: "messages", - columns: new[] { "SequenceId", "StreamKey" }, - unique: true); - - migrationBuilder.CreateIndex( - name: "IX_conversations_MessageId", - table: "conversations", - column: "MessageId"); - - migrationBuilder.AddForeignKey( - name: "FK_conversations_messages_MessageId", - table: "conversations", - column: "MessageId", - principalTable: "messages", - principalColumn: "ID"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "FK_conversations_messages_MessageId", - table: "conversations"); - - migrationBuilder.DropIndex( - name: "IX_messages_SequenceId_StreamKey", - table: "messages"); - - migrationBuilder.DropIndex( - name: "IX_conversations_MessageId", - table: "conversations"); - - migrationBuilder.DropColumn( - name: "ClientMsgId", - table: "messages"); - - migrationBuilder.DropColumn( - name: "MessageId", - table: "conversations"); - - migrationBuilder.RenameIndex( - name: "LastReadSequenceId", - table: "conversations", - newName: "lastMessageId"); - - migrationBuilder.AddForeignKey( - name: "conversations_ibfk_2", - table: "conversations", - column: "lastReadMessageId", - principalTable: "messages", - principalColumn: "ID", - onDelete: ReferentialAction.SetNull); - } - } -} +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class updatemessage : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "conversations_ibfk_2", + table: "conversations"); + + migrationBuilder.RenameIndex( + name: "lastMessageId", + table: "conversations", + newName: "LastReadSequenceId"); + + migrationBuilder.AddColumn( + name: "ClientMsgId", + table: "messages", + type: "char(36)", + nullable: false, + defaultValue: new Guid("00000000-0000-0000-0000-000000000000"), + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "MessageId", + table: "conversations", + type: "int(11)", + nullable: true); + + migrationBuilder.CreateIndex( + name: "IX_messages_SequenceId_StreamKey", + table: "messages", + columns: new[] { "SequenceId", "StreamKey" }, + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_conversations_MessageId", + table: "conversations", + column: "MessageId"); + + migrationBuilder.AddForeignKey( + name: "FK_conversations_messages_MessageId", + table: "conversations", + column: "MessageId", + principalTable: "messages", + principalColumn: "ID"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_conversations_messages_MessageId", + table: "conversations"); + + migrationBuilder.DropIndex( + name: "IX_messages_SequenceId_StreamKey", + table: "messages"); + + migrationBuilder.DropIndex( + name: "IX_conversations_MessageId", + table: "conversations"); + + migrationBuilder.DropColumn( + name: "ClientMsgId", + table: "messages"); + + migrationBuilder.DropColumn( + name: "MessageId", + table: "conversations"); + + migrationBuilder.RenameIndex( + name: "LastReadSequenceId", + table: "conversations", + newName: "lastMessageId"); + + migrationBuilder.AddForeignKey( + name: "conversations_ibfk_2", + table: "conversations", + column: "lastReadMessageId", + principalTable: "messages", + principalColumn: "ID", + onDelete: ReferentialAction.SetNull); + } + } +} diff --git a/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.Designer.cs b/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.Designer.cs index 18d1abd..d29477f 100644 --- a/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.Designer.cs +++ b/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.Designer.cs @@ -1,1101 +1,1101 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260207121713_update-datetimeToDateTimeOffset")] - partial class updatedatetimeToDateTimeOffset - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadSequenceId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("MessageId") - .HasColumnType("int(11)"); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("MessageId"); - - b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("ClientMsgId") - .HasColumnType("char(36)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("SequenceId", "StreamKey") - .IsUnique(); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", null) - .WithMany("Conversations") - .HasForeignKey("MessageId"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260207121713_update-datetimeToDateTimeOffset")] + partial class updatedatetimeToDateTimeOffset + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.cs b/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.cs index 15b2ed4..22b00b8 100644 --- a/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.cs +++ b/backend/IM_API/Migrations/20260207121713_update-datetimeToDateTimeOffset.cs @@ -1,22 +1,22 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class updatedatetimeToDateTimeOffset : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class updatedatetimeToDateTimeOffset : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.Designer.cs b/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.Designer.cs index 06934ee..0554479 100644 --- a/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.Designer.cs +++ b/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.Designer.cs @@ -1,1101 +1,1101 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260207122338_update-DateTimeOffset-type")] - partial class updateDateTimeOffsettype - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadSequenceId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("MessageId") - .HasColumnType("int(11)"); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("MessageId"); - - b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("ClientMsgId") - .HasColumnType("char(36)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("SequenceId", "StreamKey") - .IsUnique(); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", null) - .WithMany("Conversations") - .HasForeignKey("MessageId"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260207122338_update-DateTimeOffset-type")] + partial class updateDateTimeOffsettype + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.cs b/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.cs index 50750a3..92f641f 100644 --- a/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.cs +++ b/backend/IM_API/Migrations/20260207122338_update-DateTimeOffset-type.cs @@ -1,22 +1,22 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class updateDateTimeOffsettype : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } - } -} +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class updateDateTimeOffsettype : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/backend/IM_API/Migrations/20260208124430_update-group.Designer.cs b/backend/IM_API/Migrations/20260208124430_update-group.Designer.cs index 3dddeea..48ad47e 100644 --- a/backend/IM_API/Migrations/20260208124430_update-group.Designer.cs +++ b/backend/IM_API/Migrations/20260208124430_update-group.Designer.cs @@ -1,1115 +1,1115 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260208124430_update-group")] - partial class updategroup - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadSequenceId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("MessageId") - .HasColumnType("int(11)"); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("MessageId"); - - b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("LastMessage") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("LastSenderName") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("LastUpdateTime") - .HasColumnType("datetime(6)"); - - b.Property("MaxSequenceId") - .HasColumnType("bigint"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("ClientMsgId") - .HasColumnType("char(36)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("SequenceId", "StreamKey") - .IsUnique(); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", null) - .WithMany("Conversations") - .HasForeignKey("MessageId"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "GroupNavigation") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("GroupNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260208124430_update-group")] + partial class updategroup + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("LastMessage") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastSenderName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime(6)"); + + b.Property("MaxSequenceId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "GroupNavigation") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("GroupNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260208124430_update-group.cs b/backend/IM_API/Migrations/20260208124430_update-group.cs index 337e334..1e830d1 100644 --- a/backend/IM_API/Migrations/20260208124430_update-group.cs +++ b/backend/IM_API/Migrations/20260208124430_update-group.cs @@ -1,65 +1,65 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class updategroup : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.AddColumn( - name: "LastMessage", - table: "groups", - type: "longtext", - nullable: false, - collation: "utf8mb4_general_ci") - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.AddColumn( - name: "LastSenderName", - table: "groups", - type: "longtext", - nullable: false, - collation: "utf8mb4_general_ci") - .Annotation("MySql:CharSet", "utf8mb4"); - - migrationBuilder.AddColumn( - name: "LastUpdateTime", - table: "groups", - type: "datetime(6)", - nullable: false, - defaultValue: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0))); - - migrationBuilder.AddColumn( - name: "MaxSequenceId", - table: "groups", - type: "bigint", - nullable: false, - defaultValue: 0L); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropColumn( - name: "LastMessage", - table: "groups"); - - migrationBuilder.DropColumn( - name: "LastSenderName", - table: "groups"); - - migrationBuilder.DropColumn( - name: "LastUpdateTime", - table: "groups"); - - migrationBuilder.DropColumn( - name: "MaxSequenceId", - table: "groups"); - } - } -} +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class updategroup : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "LastMessage", + table: "groups", + type: "longtext", + nullable: false, + collation: "utf8mb4_general_ci") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "LastSenderName", + table: "groups", + type: "longtext", + nullable: false, + collation: "utf8mb4_general_ci") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "LastUpdateTime", + table: "groups", + type: "datetime(6)", + nullable: false, + defaultValue: new DateTimeOffset(new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0))); + + migrationBuilder.AddColumn( + name: "MaxSequenceId", + table: "groups", + type: "bigint", + nullable: false, + defaultValue: 0L); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "LastMessage", + table: "groups"); + + migrationBuilder.DropColumn( + name: "LastSenderName", + table: "groups"); + + migrationBuilder.DropColumn( + name: "LastUpdateTime", + table: "groups"); + + migrationBuilder.DropColumn( + name: "MaxSequenceId", + table: "groups"); + } + } +} diff --git a/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.Designer.cs b/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.Designer.cs index 866d3ee..109b170 100644 --- a/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.Designer.cs +++ b/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.Designer.cs @@ -1,1117 +1,1117 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - [Migration("20260211065853_update-group-groupid-userid")] - partial class updategroupgroupiduserid - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadSequenceId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("MessageId") - .HasColumnType("int(11)"); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("MessageId"); - - b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("LastMessage") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("LastSenderName") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("LastUpdateTime") - .HasColumnType("datetime(6)"); - - b.Property("MaxSequenceId") - .HasColumnType("bigint"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("UserId"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("ClientMsgId") - .HasColumnType("char(36)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("SequenceId", "StreamKey") - .IsUnique(); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", null) - .WithMany("Conversations") - .HasForeignKey("MessageId"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupRequests") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260211065853_update-group-groupid-userid")] + partial class updategroupgroupiduserid + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("LastMessage") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastSenderName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime(6)"); + + b.Property("MaxSequenceId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("UserId"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupRequests") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.cs b/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.cs index 018a446..cbdc606 100644 --- a/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.cs +++ b/backend/IM_API/Migrations/20260211065853_update-group-groupid-userid.cs @@ -1,49 +1,49 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace IM_API.Migrations -{ - /// - public partial class updategroupgroupiduserid : Migration - { - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "group_request_ibfk_2", - table: "group_request"); - - migrationBuilder.CreateIndex( - name: "IX_group_request_UserId", - table: "group_request", - column: "UserId"); - - migrationBuilder.AddForeignKey( - name: "group_request_ibfk_2", - table: "group_request", - column: "UserId", - principalTable: "users", - principalColumn: "ID"); - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropForeignKey( - name: "group_request_ibfk_2", - table: "group_request"); - - migrationBuilder.DropIndex( - name: "IX_group_request_UserId", - table: "group_request"); - - migrationBuilder.AddForeignKey( - name: "group_request_ibfk_2", - table: "group_request", - column: "GroupId", - principalTable: "users", - principalColumn: "ID"); - } - } -} +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class updategroupgroupiduserid : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "group_request_ibfk_2", + table: "group_request"); + + migrationBuilder.CreateIndex( + name: "IX_group_request_UserId", + table: "group_request", + column: "UserId"); + + migrationBuilder.AddForeignKey( + name: "group_request_ibfk_2", + table: "group_request", + column: "UserId", + principalTable: "users", + principalColumn: "ID"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "group_request_ibfk_2", + table: "group_request"); + + migrationBuilder.DropIndex( + name: "IX_group_request_UserId", + table: "group_request"); + + migrationBuilder.AddForeignKey( + name: "group_request_ibfk_2", + table: "group_request", + column: "GroupId", + principalTable: "users", + principalColumn: "ID"); + } + } +} diff --git a/backend/IM_API/Migrations/ImContextModelSnapshot.cs b/backend/IM_API/Migrations/ImContextModelSnapshot.cs index 8159df8..232195b 100644 --- a/backend/IM_API/Migrations/ImContextModelSnapshot.cs +++ b/backend/IM_API/Migrations/ImContextModelSnapshot.cs @@ -1,1114 +1,1114 @@ -// -using System; -using IM_API.Models; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace IM_API.Migrations -{ - [DbContext(typeof(ImContext))] - partial class ImContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasAnnotation("ProductVersion", "8.0.21") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("状态(0:正常,2:封禁) "); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("更新时间 "); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RoleId" }, "RoleId"); - - b.ToTable("admins", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("int(11)"); - - b.Property("LastMessage") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("最后一条最新消息"); - - b.Property("LastMessageTime") - .HasColumnType("datetime") - .HasComment("最后一条消息发送时间"); - - b.Property("LastReadSequenceId") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId") - .HasComment("最后一条未读消息ID "); - - b.Property("MessageId") - .HasColumnType("int(11)"); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.Property("TargetId") - .HasColumnType("int(11)") - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); - - b.Property("UnreadCount") - .HasColumnType("int(11)") - .HasComment("未读消息数 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("MessageId"); - - b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); - - b.HasIndex(new[] { "UserId" }, "Userid"); - - b.ToTable("conversations", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); - - b.Property("LastLogin") - .HasColumnType("datetime") - .HasComment("最后一次登录 "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("设备所属用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userid") - .HasDatabaseName("Userid1"); - - b.ToTable("devices", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("FileType") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)") - .HasComment("文件类型 "); - - b.Property("MessageId") - .HasColumnType("int(11)") - .HasComment("关联消息ID "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("文件名 "); - - b.Property("Size") - .HasColumnType("int(11)") - .HasComment("文件大小(单位:KB) "); - - b.Property("Url") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)") - .HasColumnName("URL") - .HasComment("文件储存URL "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "MessageId" }, "Messageld"); - - b.ToTable("files", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("好友头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("好友关系创建时间"); - - b.Property("FriendId") - .HasColumnType("int(11)") - .HasComment("用户2ID"); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("好友备注名"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户ID"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID"); - - b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); - - b.HasIndex(new[] { "FriendId" }, "用户2id"); - - b.ToTable("friends", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("申请时间 "); - - b.Property("Description") - .HasColumnType("text") - .HasComment("申请附言 "); - - b.Property("RemarkName") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("备注"); - - b.Property("RequestUser") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.Property("ResponseUser") - .HasColumnType("int(11)") - .HasComment("被申请人 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "RequestUser" }, "RequestUser"); - - b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); - - b.ToTable("friend_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("AllMembersBanned") - .HasColumnType("tinyint(4)") - .HasComment("全员禁言(0允许发言,2全员禁言)"); - - b.Property("Announcement") - .HasColumnType("text") - .HasComment("群公告"); - - b.Property("Auhority") - .HasColumnType("tinyint(4)") - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); - - b.Property("Avatar") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("群头像"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("群聊创建时间"); - - b.Property("GroupMaster") - .HasColumnType("int(11)") - .HasComment("群主"); - - b.Property("LastMessage") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("LastSenderName") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("LastUpdateTime") - .HasColumnType("datetime(6)"); - - b.Property("MaxSequenceId") - .HasColumnType("bigint"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("群聊名称"); - - b.Property("Status") - .HasColumnType("tinyint(4)") - .HasComment("群聊状态\r\n(1:正常,2:封禁)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID1"); - - b.ToTable("groups", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("InviteUser") - .HasColumnType("int(11)") - .HasComment("邀请用户"); - - b.Property("InvitedUser") - .HasColumnType("int(11)") - .HasComment("被邀请用户"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "GroupId"); - - b.HasIndex(new[] { "InviteUser" }, "InviteUser"); - - b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); - - b.ToTable("group_invite", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号"); - - b.Property("Role") - .HasColumnType("tinyint(4)") - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("用户编号"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "GroupId" }, "Groupld"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID2"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld1"); - - b.ToTable("group_member", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("入群附言"); - - b.Property("GroupId") - .HasColumnType("int(11)") - .HasComment("群聊编号\r\n"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("申请人 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("UserId"); - - b.HasIndex(new[] { "GroupId" }, "GroupId") - .HasDatabaseName("GroupId1"); - - b.ToTable("group_request", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Dtype") - .HasColumnType("tinyint(4)") - .HasColumnName("DType") - .HasComment("设备类型(通Devices/DType) "); - - b.Property("Logined") - .HasColumnType("datetime") - .HasComment("登录时间 "); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("登录用户 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld2"); - - b.ToTable("login_log", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ChatType") - .HasColumnType("tinyint(4)") - .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); - - b.Property("ClientMsgId") - .HasColumnType("char(36)"); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("消息内容 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("发送时间 "); - - b.Property("MsgType") - .HasColumnType("tinyint(4)") - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); - - b.Property("Recipient") - .HasColumnType("int(11)") - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); - - b.Property("Sender") - .HasColumnType("int(11)") - .HasComment("发送者 "); - - b.Property("SequenceId") - .HasColumnType("bigint"); - - b.Property("State") - .HasColumnType("tinyint(4)") - .HasComment("消息状态(0:已发送,1:已撤回) "); - - b.Property("StreamKey") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("消息推送唯一标识符"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex("SequenceId", "StreamKey") - .IsUnique(); - - b.HasIndex(new[] { "Sender" }, "Sender"); - - b.ToTable("messages", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Content") - .IsRequired() - .HasColumnType("text") - .HasComment("通知内容"); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间"); - - b.Property("Ntype") - .HasColumnType("tinyint(4)") - .HasColumnName("NType") - .HasComment("通知类型(0:文本)"); - - b.Property("Title") - .IsRequired() - .HasMaxLength(40) - .HasColumnType("varchar(40)") - .HasComment("通知标题"); - - b.Property("UserId") - .HasColumnType("int(11)") - .HasComment("接收人(为空为全体通知)"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "UserId" }, "Userld") - .HasDatabaseName("Userld3"); - - b.ToTable("notifications", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("int(11)") - .HasComment("权限编码 "); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("权限名称 "); - - b.Property("Ptype") - .HasColumnType("int(11)") - .HasColumnName("PType") - .HasComment("权限类型(0:增,1:删,2:改,3:查) "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("permissions", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.Property("Id") - .HasColumnType("int(11)") - .HasColumnName("ID"); - - b.Property("PermissionId") - .HasColumnType("int(11)") - .HasComment("权限 "); - - b.Property("RoleId") - .HasColumnType("int(11)") - .HasComment("角色 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "PermissionId" }, "Permissionld"); - - b.HasIndex(new[] { "RoleId" }, "Roleld"); - - b.ToTable("permissionarole", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Created") - .HasColumnType("datetime") - .HasComment("创建时间 "); - - b.Property("Description") - .IsRequired() - .HasColumnType("text") - .HasComment("角色描述 "); - - b.Property("Name") - .IsRequired() - .HasMaxLength(20) - .HasColumnType("varchar(20)") - .HasComment("角色名称 "); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.ToTable("roles", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int(11)") - .HasColumnName("ID"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("Avatar") - .HasMaxLength(255) - .HasColumnType("varchar(255)") - .HasComment("用户头像链接"); - - b.Property("Created") - .ValueGeneratedOnAdd() - .HasColumnType("datetime") - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间"); - - b.Property("IsDeleted") - .HasColumnType("tinyint(4)") - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); - - b.Property("NickName") - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("用户昵称"); - - b.Property("OnlineStatus") - .HasColumnType("tinyint(4)") - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); - - b.Property("Password") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("密码"); - - b.Property("Status") - .ValueGeneratedOnAdd() - .HasColumnType("tinyint(4)") - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); - - b.Property("Updated") - .HasColumnType("datetime") - .HasComment("修改时间"); - - b.Property("Username") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)") - .HasComment("唯一用户名"); - - b.HasKey("Id") - .HasName("PRIMARY"); - - b.HasIndex(new[] { "Id" }, "ID") - .HasDatabaseName("ID3"); - - b.HasIndex(new[] { "Username" }, "Username") - .IsUnique(); - - b.ToTable("users", (string)null); - - MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); - MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); - }); - - modelBuilder.Entity("IM_API.Models.Admin", b => - { - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Admins") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("admins_ibfk_1"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Conversation", b => - { - b.HasOne("IM_API.Models.Message", null) - .WithMany("Conversations") - .HasForeignKey("MessageId"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("Conversations") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("conversations_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Device", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Devices") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("devices_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.File", b => - { - b.HasOne("IM_API.Models.Message", "Message") - .WithMany("Files") - .HasForeignKey("MessageId") - .IsRequired() - .HasConstraintName("files_ibfk_1"); - - b.Navigation("Message"); - }); - - modelBuilder.Entity("IM_API.Models.Friend", b => - { - b.HasOne("IM_API.Models.User", "FriendNavigation") - .WithMany("FriendFriendNavigations") - .HasForeignKey("FriendId") - .IsRequired() - .HasConstraintName("用户2id"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("FriendUsers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("用户id"); - - b.Navigation("FriendNavigation"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.FriendRequest", b => - { - b.HasOne("IM_API.Models.User", "RequestUserNavigation") - .WithMany("FriendRequestRequestUserNavigations") - .HasForeignKey("RequestUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "ResponseUserNavigation") - .WithMany("FriendRequestResponseUserNavigations") - .HasForeignKey("ResponseUser") - .IsRequired() - .HasConstraintName("friend_request_ibfk_2"); - - b.Navigation("RequestUserNavigation"); - - b.Navigation("ResponseUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.HasOne("IM_API.Models.User", "GroupMasterNavigation") - .WithMany("Groups") - .HasForeignKey("GroupMaster") - .IsRequired() - .HasConstraintName("groups_ibfk_1"); - - b.Navigation("GroupMasterNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupInvite", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupInvites") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_invite_ibfk_2"); - - b.HasOne("IM_API.Models.User", "InviteUserNavigation") - .WithMany("GroupInviteInviteUserNavigations") - .HasForeignKey("InviteUser") - .HasConstraintName("group_invite_ibfk_1"); - - b.HasOne("IM_API.Models.User", "InvitedUserNavigation") - .WithMany("GroupInviteInvitedUserNavigations") - .HasForeignKey("InvitedUser") - .HasConstraintName("group_invite_ibfk_3"); - - b.Navigation("Group"); - - b.Navigation("InviteUserNavigation"); - - b.Navigation("InvitedUserNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.GroupMember", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupMembers") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_member_ibfk_2"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupMembers") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_member_ibfk_1"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.GroupRequest", b => - { - b.HasOne("IM_API.Models.Group", "Group") - .WithMany("GroupRequests") - .HasForeignKey("GroupId") - .IsRequired() - .HasConstraintName("group_request_ibfk_1"); - - b.HasOne("IM_API.Models.User", "User") - .WithMany("GroupRequests") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("group_request_ibfk_2"); - - b.Navigation("Group"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.LoginLog", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("LoginLogs") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("login_log_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.HasOne("IM_API.Models.User", "SenderNavigation") - .WithMany("Messages") - .HasForeignKey("Sender") - .IsRequired() - .HasConstraintName("messages_ibfk_1"); - - b.Navigation("SenderNavigation"); - }); - - modelBuilder.Entity("IM_API.Models.Notification", b => - { - b.HasOne("IM_API.Models.User", "User") - .WithMany("Notifications") - .HasForeignKey("UserId") - .IsRequired() - .HasConstraintName("notifications_ibfk_1"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("IM_API.Models.Permissionarole", b => - { - b.HasOne("IM_API.Models.Permission", "Permission") - .WithMany("Permissionaroles") - .HasForeignKey("PermissionId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_2"); - - b.HasOne("IM_API.Models.Role", "Role") - .WithMany("Permissionaroles") - .HasForeignKey("RoleId") - .IsRequired() - .HasConstraintName("permissionarole_ibfk_1"); - - b.Navigation("Permission"); - - b.Navigation("Role"); - }); - - modelBuilder.Entity("IM_API.Models.Group", b => - { - b.Navigation("GroupInvites"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - }); - - modelBuilder.Entity("IM_API.Models.Message", b => - { - b.Navigation("Conversations"); - - b.Navigation("Files"); - }); - - modelBuilder.Entity("IM_API.Models.Permission", b => - { - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.Role", b => - { - b.Navigation("Admins"); - - b.Navigation("Permissionaroles"); - }); - - modelBuilder.Entity("IM_API.Models.User", b => - { - b.Navigation("Conversations"); - - b.Navigation("Devices"); - - b.Navigation("FriendFriendNavigations"); - - b.Navigation("FriendRequestRequestUserNavigations"); - - b.Navigation("FriendRequestResponseUserNavigations"); - - b.Navigation("FriendUsers"); - - b.Navigation("GroupInviteInviteUserNavigations"); - - b.Navigation("GroupInviteInvitedUserNavigations"); - - b.Navigation("GroupMembers"); - - b.Navigation("GroupRequests"); - - b.Navigation("Groups"); - - b.Navigation("LoginLogs"); - - b.Navigation("Messages"); - - b.Navigation("Notifications"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + partial class ImContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("LastMessage") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastSenderName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime(6)"); + + b.Property("MaxSequenceId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("UserId"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupRequests") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Models/Admin.cs b/backend/IM_API/Models/Admin.cs index 0da0856..6989c34 100644 --- a/backend/IM_API/Models/Admin.cs +++ b/backend/IM_API/Models/Admin.cs @@ -1,41 +1,41 @@ -using System; -using System.Collections.Generic; - -namespace IM_API.Models; - -public partial class Admin -{ - public int Id { get; set; } - - /// - /// 用户名 - /// - public string Username { get; set; } = null!; - - /// - /// 密码 - /// - public string Password { get; set; } = null!; - - /// - /// 角色 - /// - public int RoleId { get; set; } - - /// - /// 状态(0:正常,2:封禁) - /// - public sbyte State { get; set; } - - /// - /// 创建时间 - /// - public DateTimeOffset Created { get; set; } - - /// - /// 更新时间 - /// - public DateTimeOffset Updated { get; set; } - - public virtual Role Role { get; set; } = null!; -} +using System; +using System.Collections.Generic; + +namespace IM_API.Models; + +public partial class Admin +{ + public int Id { get; set; } + + /// + /// 用户名 + /// + public string Username { get; set; } = null!; + + /// + /// 密码 + /// + public string Password { get; set; } = null!; + + /// + /// 角色 + /// + public int RoleId { get; set; } + + /// + /// 状态(0:正常,2:封禁) + /// + public sbyte State { get; set; } + + /// + /// 创建时间 + /// + public DateTimeOffset Created { get; set; } + + /// + /// 更新时间 + /// + public DateTimeOffset Updated { get; set; } + + public virtual Role Role { get; set; } = null!; +} diff --git a/backend/IM_API/Models/AdminExt.cs b/backend/IM_API/Models/AdminExt.cs index 70b2a96..2917946 100644 --- a/backend/IM_API/Models/AdminExt.cs +++ b/backend/IM_API/Models/AdminExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class Admin - { - public AdminState StateEnum - { - get => (AdminState)State; - set => State = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class Admin + { + public AdminState StateEnum + { + get => (AdminState)State; + set => State = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/AdminState.cs b/backend/IM_API/Models/AdminState.cs index ca160b9..94e407d 100644 --- a/backend/IM_API/Models/AdminState.cs +++ b/backend/IM_API/Models/AdminState.cs @@ -1,8 +1,8 @@ -namespace IM_API.Models -{ - public enum AdminState - { - Normal = 0, - Blocked = 2 - } -} +namespace IM_API.Models +{ + public enum AdminState + { + Normal = 0, + Blocked = 2 + } +} diff --git a/backend/IM_API/Models/ChatType.cs b/backend/IM_API/Models/ChatType.cs index 6a85a7e..fbfa45f 100644 --- a/backend/IM_API/Models/ChatType.cs +++ b/backend/IM_API/Models/ChatType.cs @@ -1,8 +1,8 @@ -namespace IM_API.Models -{ - public enum ChatType - { - PRIVATE = 0, - GROUP = 1 - } -} +namespace IM_API.Models +{ + public enum ChatType + { + PRIVATE = 0, + GROUP = 1 + } +} diff --git a/backend/IM_API/Models/Conversation.cs b/backend/IM_API/Models/Conversation.cs index eec14a6..ace5802 100644 --- a/backend/IM_API/Models/Conversation.cs +++ b/backend/IM_API/Models/Conversation.cs @@ -1,51 +1,51 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Conversation -{ - public int Id { get; set; } - - /// - /// 用户 - /// - public int UserId { get; set; } - - /// - /// 对方ID(群聊为群聊ID,单聊为单聊ID) - /// - public int TargetId { get; set; } - - /// - /// 最后一条未读消息ID - /// - public long? LastReadSequenceId { get; set; } - - /// - /// 未读消息数 - /// - public int UnreadCount { get; set; } - - public ChatType ChatType { get; set; } - - /// - /// 消息推送唯一标识符 - /// - public string StreamKey { get; set; } = null!; - - /// - /// 最后一条最新消息 - /// - public string LastMessage { get; set; } = null!; - - /// - /// 最后一条消息发送时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset LastMessageTime { get; set; } - - - public virtual User User { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Conversation +{ + public int Id { get; set; } + + /// + /// 用户 + /// + public int UserId { get; set; } + + /// + /// 对方ID(群聊为群聊ID,单聊为单聊ID) + /// + public int TargetId { get; set; } + + /// + /// 最后一条未读消息ID + /// + public long? LastReadSequenceId { get; set; } + + /// + /// 未读消息数 + /// + public int UnreadCount { get; set; } + + public ChatType ChatType { get; set; } + + /// + /// 消息推送唯一标识符 + /// + public string StreamKey { get; set; } = null!; + + /// + /// 最后一条最新消息 + /// + public string LastMessage { get; set; } = null!; + + /// + /// 最后一条消息发送时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset LastMessageTime { get; set; } + + + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/ConversationExt.cs b/backend/IM_API/Models/ConversationExt.cs index 816e812..a38e4d1 100644 --- a/backend/IM_API/Models/ConversationExt.cs +++ b/backend/IM_API/Models/ConversationExt.cs @@ -1,18 +1,18 @@ -using IM_API.Dtos.Conversation; - -namespace IM_API.Models -{ - public partial class Conversation - { - public ChatType ChatTypeEnum { - get - { - return ChatType; - } - set - { - ChatType = value; - } - } - } -} +using IM_API.Dtos.Conversation; + +namespace IM_API.Models +{ + public partial class Conversation + { + public ChatType ChatTypeEnum { + get + { + return ChatType; + } + set + { + ChatType = value; + } + } + } +} diff --git a/backend/IM_API/Models/Device.cs b/backend/IM_API/Models/Device.cs index 4bfbbb8..a500ed7 100644 --- a/backend/IM_API/Models/Device.cs +++ b/backend/IM_API/Models/Device.cs @@ -1,29 +1,29 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Device -{ - public int Id { get; set; } - - /// - /// 设备所属用户 - /// - public int UserId { get; set; } - - /// - /// 设备类型( - /// 0:Android,1:Ios,2:PC,3:Pad,4:未知) - /// - public sbyte Dtype { get; set; } - - /// - /// 最后一次登录 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset LastLogin { get; set; } - - public virtual User User { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Device +{ + public int Id { get; set; } + + /// + /// 设备所属用户 + /// + public int UserId { get; set; } + + /// + /// 设备类型( + /// 0:Android,1:Ios,2:PC,3:Pad,4:未知) + /// + public sbyte Dtype { get; set; } + + /// + /// 最后一次登录 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset LastLogin { get; set; } + + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/DeviceDtype.cs b/backend/IM_API/Models/DeviceDtype.cs index 117a96c..5dcfb7e 100644 --- a/backend/IM_API/Models/DeviceDtype.cs +++ b/backend/IM_API/Models/DeviceDtype.cs @@ -1,26 +1,26 @@ -namespace IM_API.Models -{ - /// - /// 设备类型枚举 - /// - public enum DeviceDtype - { - /// - /// 安卓端 - /// - ANDROID = 0, - /// - /// IOS端 - /// - IOS = 1, - /// - /// PC - /// - PC = 2, - PAD = 3, - /// - /// 未知端 - /// - OTHER = 4 - } -} +namespace IM_API.Models +{ + /// + /// 设备类型枚举 + /// + public enum DeviceDtype + { + /// + /// 安卓端 + /// + ANDROID = 0, + /// + /// IOS端 + /// + IOS = 1, + /// + /// PC + /// + PC = 2, + PAD = 3, + /// + /// 未知端 + /// + OTHER = 4 + } +} diff --git a/backend/IM_API/Models/DeviceExt.cs b/backend/IM_API/Models/DeviceExt.cs index 162b007..7f08ced 100644 --- a/backend/IM_API/Models/DeviceExt.cs +++ b/backend/IM_API/Models/DeviceExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class Device - { - public DeviceDtype DtypeEnum - { - get => (DeviceDtype)Dtype; - set => Dtype = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class Device + { + public DeviceDtype DtypeEnum + { + get => (DeviceDtype)Dtype; + set => Dtype = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/File.cs b/backend/IM_API/Models/File.cs index 5acf177..31de38e 100644 --- a/backend/IM_API/Models/File.cs +++ b/backend/IM_API/Models/File.cs @@ -1,43 +1,43 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class File -{ - public int Id { get; set; } - - /// - /// 文件名 - /// - public string Name { get; set; } = null!; - - /// - /// 文件储存URL - /// - public string Url { get; set; } = null!; - - /// - /// 文件大小(单位:KB) - /// - public int Size { get; set; } - - /// - /// 文件类型 - /// - public string FileType { get; set; } = null!; - - /// - /// 关联消息ID - /// - public int MessageId { get; set; } - - /// - /// 创建时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - public virtual Message Message { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class File +{ + public int Id { get; set; } + + /// + /// 文件名 + /// + public string Name { get; set; } = null!; + + /// + /// 文件储存URL + /// + public string Url { get; set; } = null!; + + /// + /// 文件大小(单位:KB) + /// + public int Size { get; set; } + + /// + /// 文件类型 + /// + public string FileType { get; set; } = null!; + + /// + /// 关联消息ID + /// + public int MessageId { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + public virtual Message Message { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Friend.cs b/backend/IM_API/Models/Friend.cs index 92fc208..7763caa 100644 --- a/backend/IM_API/Models/Friend.cs +++ b/backend/IM_API/Models/Friend.cs @@ -1,46 +1,46 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Friend -{ - public int Id { get; set; } - - /// - /// 用户ID - /// - public int UserId { get; set; } - - /// - /// 用户2ID - /// - public int FriendId { get; set; } - - /// - /// 当前好友关系状态 - /// (0:待通过,1:已添加,2:已拒绝,3:已拉黑) - /// - public sbyte Status { get; set; } - - /// - /// 好友关系创建时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - /// - /// 好友备注名 - /// - public string RemarkName { get; set; } = null!; - - /// - /// 好友头像 - /// - public string? Avatar { get; set; } - - public virtual User FriendNavigation { get; set; } = null!; - - public virtual User User { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Friend +{ + public int Id { get; set; } + + /// + /// 用户ID + /// + public int UserId { get; set; } + + /// + /// 用户2ID + /// + public int FriendId { get; set; } + + /// + /// 当前好友关系状态 + /// (0:待通过,1:已添加,2:已拒绝,3:已拉黑) + /// + public sbyte Status { get; set; } + + /// + /// 好友关系创建时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + /// + /// 好友备注名 + /// + public string RemarkName { get; set; } = null!; + + /// + /// 好友头像 + /// + public string? Avatar { get; set; } + + public virtual User FriendNavigation { get; set; } = null!; + + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/FriendExt.cs b/backend/IM_API/Models/FriendExt.cs index cc9e250..f81bf0c 100644 --- a/backend/IM_API/Models/FriendExt.cs +++ b/backend/IM_API/Models/FriendExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class Friend - { - public FriendStatus StatusEnum - { - get => (FriendStatus)Status; - set => Status = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class Friend + { + public FriendStatus StatusEnum + { + get => (FriendStatus)Status; + set => Status = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/FriendRequestExt.cs b/backend/IM_API/Models/FriendRequestExt.cs index 0deaddb..ea367db 100644 --- a/backend/IM_API/Models/FriendRequestExt.cs +++ b/backend/IM_API/Models/FriendRequestExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class FriendRequest - { - public FriendRequestState StateEnum - { - get => (FriendRequestState)State; - set => State = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class FriendRequest + { + public FriendRequestState StateEnum + { + get => (FriendRequestState)State; + set => State = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/FriendRequestState.cs b/backend/IM_API/Models/FriendRequestState.cs index e9eb8d2..91e7e56 100644 --- a/backend/IM_API/Models/FriendRequestState.cs +++ b/backend/IM_API/Models/FriendRequestState.cs @@ -1,25 +1,25 @@ -namespace IM_API.Models -{ - /// - /// 好友请求状态 - /// - public enum FriendRequestState - { - /// - /// 待处理 - /// - Pending = 0, - /// - /// 已通过 - /// - Passed = 2, - /// - /// 已拒绝 - /// - Declined = 1, - /// - /// 拉黑 - /// - Blocked = 3 - } -} +namespace IM_API.Models +{ + /// + /// 好友请求状态 + /// + public enum FriendRequestState + { + /// + /// 待处理 + /// + Pending = 0, + /// + /// 已通过 + /// + Passed = 2, + /// + /// 已拒绝 + /// + Declined = 1, + /// + /// 拉黑 + /// + Blocked = 3 + } +} diff --git a/backend/IM_API/Models/FriendStatus.cs b/backend/IM_API/Models/FriendStatus.cs index eb7c049..b7cfaf6 100644 --- a/backend/IM_API/Models/FriendStatus.cs +++ b/backend/IM_API/Models/FriendStatus.cs @@ -1,25 +1,25 @@ -namespace IM_API.Models -{ - /// - /// 好友关系状态 - /// - public enum FriendStatus:SByte - { - /// - /// 待处理 - /// - Pending = 0, - /// - /// 已添加 - /// - Added = 1, - /// - /// 已拒绝 - /// - Declined = 2, - /// - /// 已拉黑 - /// - Blocked = 3 - } -} +namespace IM_API.Models +{ + /// + /// 好友关系状态 + /// + public enum FriendStatus:SByte + { + /// + /// 待处理 + /// + Pending = 0, + /// + /// 已添加 + /// + Added = 1, + /// + /// 已拒绝 + /// + Declined = 2, + /// + /// 已拉黑 + /// + Blocked = 3 + } +} diff --git a/backend/IM_API/Models/Friendrequest.cs b/backend/IM_API/Models/Friendrequest.cs index 410ee9d..e98e23b 100644 --- a/backend/IM_API/Models/Friendrequest.cs +++ b/backend/IM_API/Models/Friendrequest.cs @@ -1,45 +1,45 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class FriendRequest -{ - public int Id { get; set; } - - /// - /// 申请人 - /// - public int RequestUser { get; set; } - - /// - /// 被申请人 - /// - public int ResponseUser { get; set; } - - /// - /// 申请时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - /// - /// 申请附言 - /// - public string? Description { get; set; } - - /// - /// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) - /// - public sbyte State { get; set; } - - /// - /// 备注 - /// - public string RemarkName { get; set; } = null!; - - public virtual User RequestUserNavigation { get; set; } = null!; - - public virtual User ResponseUserNavigation { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class FriendRequest +{ + public int Id { get; set; } + + /// + /// 申请人 + /// + public int RequestUser { get; set; } + + /// + /// 被申请人 + /// + public int ResponseUser { get; set; } + + /// + /// 申请时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + /// + /// 申请附言 + /// + public string? Description { get; set; } + + /// + /// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) + /// + public sbyte State { get; set; } + + /// + /// 备注 + /// + public string RemarkName { get; set; } = null!; + + public virtual User RequestUserNavigation { get; set; } = null!; + + public virtual User ResponseUserNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Group.cs b/backend/IM_API/Models/Group.cs index 8d06fee..b439250 100644 --- a/backend/IM_API/Models/Group.cs +++ b/backend/IM_API/Models/Group.cs @@ -1,66 +1,66 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Group -{ - public int Id { get; set; } - - /// - /// 群聊名称 - /// - public string Name { get; set; } = null!; - - /// - /// 群主 - /// - public int GroupMaster { get; set; } - - /// - /// 群权限 - /// (0:需管理员同意,1:任意人可加群,2:不允许任何人加入) - /// - public sbyte Auhority { get; set; } - - /// - /// 全员禁言(0允许发言,2全员禁言) - /// - public sbyte AllMembersBanned { get; set; } - - /// - /// 群聊状态 - /// (1:正常,2:封禁) - /// - public sbyte Status { get; set; } - - /// - /// 群公告 - /// - public string? Announcement { get; set; } - - /// - /// 群聊创建时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - /// - /// 群头像 - /// - public string Avatar { get; set; } = null!; - public long MaxSequenceId { get; set; } = 0; - public string LastMessage { get; set; } = string.Empty; - public string LastSenderName { get; set; } = string.Empty; - public DateTimeOffset LastUpdateTime { get; set; } = DateTime.UtcNow; - - - public virtual ICollection GroupInvites { get; set; } = new List(); - - public virtual User GroupMasterNavigation { get; set; } = null!; - - public virtual ICollection GroupMembers { get; set; } = new List(); - - public virtual ICollection GroupRequests { get; set; } = new List(); -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Group +{ + public int Id { get; set; } + + /// + /// 群聊名称 + /// + public string Name { get; set; } = null!; + + /// + /// 群主 + /// + public int GroupMaster { get; set; } + + /// + /// 群权限 + /// (0:需管理员同意,1:任意人可加群,2:不允许任何人加入) + /// + public sbyte Auhority { get; set; } + + /// + /// 全员禁言(0允许发言,2全员禁言) + /// + public sbyte AllMembersBanned { get; set; } + + /// + /// 群聊状态 + /// (1:正常,2:封禁) + /// + public sbyte Status { get; set; } + + /// + /// 群公告 + /// + public string? Announcement { get; set; } + + /// + /// 群聊创建时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + /// + /// 群头像 + /// + public string Avatar { get; set; } = null!; + public long MaxSequenceId { get; set; } = 0; + public string LastMessage { get; set; } = string.Empty; + public string LastSenderName { get; set; } = string.Empty; + public DateTimeOffset LastUpdateTime { get; set; } = DateTime.UtcNow; + + + public virtual ICollection GroupInvites { get; set; } = new List(); + + public virtual User GroupMasterNavigation { get; set; } = null!; + + public virtual ICollection GroupMembers { get; set; } = new List(); + + public virtual ICollection GroupRequests { get; set; } = new List(); +} diff --git a/backend/IM_API/Models/GroupAllMembersBanned.cs b/backend/IM_API/Models/GroupAllMembersBanned.cs index 10e253f..bc6ed66 100644 --- a/backend/IM_API/Models/GroupAllMembersBanned.cs +++ b/backend/IM_API/Models/GroupAllMembersBanned.cs @@ -1,14 +1,14 @@ -namespace IM_API.Models -{ - public enum GroupAllMembersBanned - { - /// - /// 可发言 - /// - ALLOWED = 0, - /// - /// 全员禁言 - /// - BANNED = 2 - } -} +namespace IM_API.Models +{ + public enum GroupAllMembersBanned + { + /// + /// 可发言 + /// + ALLOWED = 0, + /// + /// 全员禁言 + /// + BANNED = 2 + } +} diff --git a/backend/IM_API/Models/GroupAuhority.cs b/backend/IM_API/Models/GroupAuhority.cs index c7b70c0..254c48f 100644 --- a/backend/IM_API/Models/GroupAuhority.cs +++ b/backend/IM_API/Models/GroupAuhority.cs @@ -1,22 +1,22 @@ -namespace IM_API.Models -{ - /// - /// 群加入权限 - /// - public enum GroupAuhority - { - /// - /// 需管理员同意 - /// - REQUIRE_CONSENT = 0, - /// - /// 任何人可加入 - /// - ANYONE_CAN_JOIN = 1, - /// - /// 不允许加入 - /// - NOT_ALLOWED_TO_JOIN = 2 - - } -} +namespace IM_API.Models +{ + /// + /// 群加入权限 + /// + public enum GroupAuhority + { + /// + /// 需管理员同意 + /// + REQUIRE_CONSENT = 0, + /// + /// 任何人可加入 + /// + ANYONE_CAN_JOIN = 1, + /// + /// 不允许加入 + /// + NOT_ALLOWED_TO_JOIN = 2 + + } +} diff --git a/backend/IM_API/Models/GroupExt.cs b/backend/IM_API/Models/GroupExt.cs index d9e2610..221ff15 100644 --- a/backend/IM_API/Models/GroupExt.cs +++ b/backend/IM_API/Models/GroupExt.cs @@ -1,21 +1,21 @@ -namespace IM_API.Models -{ - public partial class Group - { - public GroupAuhority AuhorityEnum - { - get => (GroupAuhority)Auhority; - set => Auhority = (sbyte) value; - } - public GroupAllMembersBanned AllMembersBannedEnum - { - get => (GroupAllMembersBanned)AllMembersBanned; - set => AllMembersBanned = (sbyte)value; - } - public GroupStatus StatusEnum - { - get => (GroupStatus)Status; - set => Status = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class Group + { + public GroupAuhority AuhorityEnum + { + get => (GroupAuhority)Auhority; + set => Auhority = (sbyte) value; + } + public GroupAllMembersBanned AllMembersBannedEnum + { + get => (GroupAllMembersBanned)AllMembersBanned; + set => AllMembersBanned = (sbyte)value; + } + public GroupStatus StatusEnum + { + get => (GroupStatus)Status; + set => Status = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/GroupInviteExt.cs b/backend/IM_API/Models/GroupInviteExt.cs index 1202368..02d9166 100644 --- a/backend/IM_API/Models/GroupInviteExt.cs +++ b/backend/IM_API/Models/GroupInviteExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class GroupInvite - { - public GroupInviteState StateEnum - { - get => (GroupInviteState)State; - set => State = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class GroupInvite + { + public GroupInviteState StateEnum + { + get => (GroupInviteState)State; + set => State = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/GroupInviteState.cs b/backend/IM_API/Models/GroupInviteState.cs index 0a69d35..bd3d7f8 100644 --- a/backend/IM_API/Models/GroupInviteState.cs +++ b/backend/IM_API/Models/GroupInviteState.cs @@ -1,17 +1,17 @@ -namespace IM_API.Models -{ - /// - /// 群邀请状态 - /// - public enum GroupInviteState - { - /// - /// 待处理 - /// - Pending = 0, - /// - /// 已同意 - /// - Passed = 1 - } -} +namespace IM_API.Models +{ + /// + /// 群邀请状态 + /// + public enum GroupInviteState + { + /// + /// 待处理 + /// + Pending = 0, + /// + /// 已同意 + /// + Passed = 1 + } +} diff --git a/backend/IM_API/Models/GroupMemberExt.cs b/backend/IM_API/Models/GroupMemberExt.cs index 5c47caa..f39d0f2 100644 --- a/backend/IM_API/Models/GroupMemberExt.cs +++ b/backend/IM_API/Models/GroupMemberExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class GroupMember - { - public GroupMemberRole RoleEnum - { - get => (GroupMemberRole)Role; - set => Role = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class GroupMember + { + public GroupMemberRole RoleEnum + { + get => (GroupMemberRole)Role; + set => Role = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/GroupMemberRole.cs b/backend/IM_API/Models/GroupMemberRole.cs index 6129e77..fc1aeba 100644 --- a/backend/IM_API/Models/GroupMemberRole.cs +++ b/backend/IM_API/Models/GroupMemberRole.cs @@ -1,18 +1,18 @@ -namespace IM_API.Models -{ - public enum GroupMemberRole - { - /// - /// 普通成员 - /// - Normal = 0, - /// - /// 管理员 - /// - Administrator = 1, - /// - /// 群主 - /// - Master = 2 - } -} +namespace IM_API.Models +{ + public enum GroupMemberRole + { + /// + /// 普通成员 + /// + Normal = 0, + /// + /// 管理员 + /// + Administrator = 1, + /// + /// 群主 + /// + Master = 2 + } +} diff --git a/backend/IM_API/Models/GroupRequestExt.cs b/backend/IM_API/Models/GroupRequestExt.cs index be685ee..96b3cb0 100644 --- a/backend/IM_API/Models/GroupRequestExt.cs +++ b/backend/IM_API/Models/GroupRequestExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class GroupRequest - { - public GroupRequestState StateEnum - { - get => (GroupRequestState)State; - set => State = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class GroupRequest + { + public GroupRequestState StateEnum + { + get => (GroupRequestState)State; + set => State = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/GroupRequestState.cs b/backend/IM_API/Models/GroupRequestState.cs index ccc0d94..977a3b5 100644 --- a/backend/IM_API/Models/GroupRequestState.cs +++ b/backend/IM_API/Models/GroupRequestState.cs @@ -1,18 +1,18 @@ -namespace IM_API.Models -{ - public enum GroupRequestState - { - /// - /// 待管理员处理 - /// - Pending = 0, - /// - /// 已拒绝 - /// - Declined = 1, - /// - /// 已同意 - /// - Passed = 2 - } -} +namespace IM_API.Models +{ + public enum GroupRequestState + { + /// + /// 待管理员处理 + /// + Pending = 0, + /// + /// 已拒绝 + /// + Declined = 1, + /// + /// 已同意 + /// + Passed = 2 + } +} diff --git a/backend/IM_API/Models/GroupStatus.cs b/backend/IM_API/Models/GroupStatus.cs index a2d331e..175fefd 100644 --- a/backend/IM_API/Models/GroupStatus.cs +++ b/backend/IM_API/Models/GroupStatus.cs @@ -1,14 +1,14 @@ -namespace IM_API.Models -{ - public enum GroupStatus - { - /// - /// 正常 - /// - Normal = 1, - /// - /// 封禁 - /// - Blocked = 2 - } -} +namespace IM_API.Models +{ + public enum GroupStatus + { + /// + /// 正常 + /// + Normal = 1, + /// + /// 封禁 + /// + Blocked = 2 + } +} diff --git a/backend/IM_API/Models/Groupinvite.cs b/backend/IM_API/Models/Groupinvite.cs index cca0ad9..f3f71d4 100644 --- a/backend/IM_API/Models/Groupinvite.cs +++ b/backend/IM_API/Models/Groupinvite.cs @@ -1,41 +1,41 @@ -using System; -using System.Collections.Generic; - -namespace IM_API.Models; - -public partial class GroupInvite -{ - public int Id { get; set; } - - /// - /// 群聊编号 - /// - public int GroupId { get; set; } - - /// - /// 被邀请用户 - /// - public int? InvitedUser { get; set; } - - /// - /// 邀请用户 - /// - public int? InviteUser { get; set; } - - /// - /// 当前状态(0:待被邀请人同意 - /// 1:被邀请人已同意) - /// - public sbyte? State { get; set; } - - /// - /// 创建时间 - /// - public DateTimeOffset? Created { get; set; } - - public virtual Group Group { get; set; } = null!; - - public virtual User? InviteUserNavigation { get; set; } - - public virtual User? InvitedUserNavigation { get; set; } -} +using System; +using System.Collections.Generic; + +namespace IM_API.Models; + +public partial class GroupInvite +{ + public int Id { get; set; } + + /// + /// 群聊编号 + /// + public int GroupId { get; set; } + + /// + /// 被邀请用户 + /// + public int? InvitedUser { get; set; } + + /// + /// 邀请用户 + /// + public int? InviteUser { get; set; } + + /// + /// 当前状态(0:待被邀请人同意 + /// 1:被邀请人已同意) + /// + public sbyte? State { get; set; } + + /// + /// 创建时间 + /// + public DateTimeOffset? Created { get; set; } + + public virtual Group Group { get; set; } = null!; + + public virtual User? InviteUserNavigation { get; set; } + + public virtual User? InvitedUserNavigation { get; set; } +} diff --git a/backend/IM_API/Models/Groupmember.cs b/backend/IM_API/Models/Groupmember.cs index f3add73..ae2e28f 100644 --- a/backend/IM_API/Models/Groupmember.cs +++ b/backend/IM_API/Models/Groupmember.cs @@ -1,35 +1,35 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class GroupMember -{ - public int Id { get; set; } - - /// - /// 用户编号 - /// - public int UserId { get; set; } - - /// - /// 群聊编号 - /// - public int GroupId { get; set; } - - /// - /// 成员角色(0:普通成员,1:管理员,2:群主) - /// - public sbyte Role { get; set; } - - /// - /// 加入群聊时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - public virtual Group Group { get; set; } = null!; - - public virtual User User { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class GroupMember +{ + public int Id { get; set; } + + /// + /// 用户编号 + /// + public int UserId { get; set; } + + /// + /// 群聊编号 + /// + public int GroupId { get; set; } + + /// + /// 成员角色(0:普通成员,1:管理员,2:群主) + /// + public sbyte Role { get; set; } + + /// + /// 加入群聊时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + public virtual Group Group { get; set; } = null!; + + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Grouprequest.cs b/backend/IM_API/Models/Grouprequest.cs index a372610..f781481 100644 --- a/backend/IM_API/Models/Grouprequest.cs +++ b/backend/IM_API/Models/Grouprequest.cs @@ -1,41 +1,41 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class GroupRequest -{ - public int Id { get; set; } - - /// - /// 群聊编号 - /// - /// - public int GroupId { get; set; } - - /// - /// 申请人 - /// - public int UserId { get; set; } - - /// - /// 申请状态(0:待管理员同意,1:已拒绝,2:已同意) - /// - public sbyte State { get; set; } - - /// - /// 入群附言 - /// - public string Description { get; set; } = null!; - - /// - /// 创建时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - public virtual Group Group { get; set; } = null!; - - public virtual User User { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class GroupRequest +{ + public int Id { get; set; } + + /// + /// 群聊编号 + /// + /// + public int GroupId { get; set; } + + /// + /// 申请人 + /// + public int UserId { get; set; } + + /// + /// 申请状态(0:待管理员同意,1:已拒绝,2:已同意) + /// + public sbyte State { get; set; } + + /// + /// 入群附言 + /// + public string Description { get; set; } = null!; + + /// + /// 创建时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + public virtual Group Group { get; set; } = null!; + + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/ImContext.Custom.cs b/backend/IM_API/Models/ImContext.Custom.cs index d02529d..9f6673d 100644 --- a/backend/IM_API/Models/ImContext.Custom.cs +++ b/backend/IM_API/Models/ImContext.Custom.cs @@ -1,100 +1,100 @@ -using Microsoft.EntityFrameworkCore; - -namespace IM_API.Models -{ - public partial class ImContext - { - partial void OnModelCreatingPartial(ModelBuilder modelBuilder) - { - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StateEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.OnlineStatusEnum); - entity.Ignore(e => e.StatusEnum); - entity.HasQueryFilter(e => e.IsDeleted == 0); - }); - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.ChatTypeEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.DtypeEnum); - }); - - modelBuilder.Entity(entity => - { - - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StatusEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StateEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StatusEnum); - entity.Ignore(e => e.AllMembersBannedEnum); - entity.Ignore(e => e.AuhorityEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StateEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.RoleEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StateEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StateEnum); - }); - - modelBuilder.Entity(entity => - { - entity.Ignore(e => e.StateEnum); - entity.Ignore(e => e.MsgTypeEnum); - entity.Ignore(e => e.ChatTypeEnum); - }); - - modelBuilder.Entity(entity => - { - - }); - - modelBuilder.Entity(entity => - { - - }); - - modelBuilder.Entity(entity => - { - - }); - - modelBuilder.Entity(entity => - { - - }); - } - } -} +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models +{ + public partial class ImContext + { + partial void OnModelCreatingPartial(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StateEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.OnlineStatusEnum); + entity.Ignore(e => e.StatusEnum); + entity.HasQueryFilter(e => e.IsDeleted == 0); + }); + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.ChatTypeEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.DtypeEnum); + }); + + modelBuilder.Entity(entity => + { + + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StatusEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StateEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StatusEnum); + entity.Ignore(e => e.AllMembersBannedEnum); + entity.Ignore(e => e.AuhorityEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StateEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.RoleEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StateEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StateEnum); + }); + + modelBuilder.Entity(entity => + { + entity.Ignore(e => e.StateEnum); + entity.Ignore(e => e.MsgTypeEnum); + entity.Ignore(e => e.ChatTypeEnum); + }); + + modelBuilder.Entity(entity => + { + + }); + + modelBuilder.Entity(entity => + { + + }); + + modelBuilder.Entity(entity => + { + + }); + + modelBuilder.Entity(entity => + { + + }); + } + } +} diff --git a/backend/IM_API/Models/ImContext.cs b/backend/IM_API/Models/ImContext.cs index e09154c..1bea25b 100644 --- a/backend/IM_API/Models/ImContext.cs +++ b/backend/IM_API/Models/ImContext.cs @@ -1,741 +1,741 @@ -using System; -using System.Collections.Generic; -using Microsoft.EntityFrameworkCore; - -namespace IM_API.Models; - -public partial class ImContext : DbContext -{ - public ImContext(DbContextOptions options) - : base(options) - { - } - - public virtual DbSet Admins { get; set; } - - public virtual DbSet Conversations { get; set; } - - public virtual DbSet Devices { get; set; } - - public virtual DbSet Files { get; set; } - - public virtual DbSet Friends { get; set; } - - public virtual DbSet FriendRequests { get; set; } - - public virtual DbSet Groups { get; set; } - - public virtual DbSet GroupInvites { get; set; } - - public virtual DbSet GroupMembers { get; set; } - - public virtual DbSet GroupRequests { get; set; } - - public virtual DbSet LoginLogs { get; set; } - - public virtual DbSet Messages { get; set; } - - public virtual DbSet Notifications { get; set; } - - public virtual DbSet Permissions { get; set; } - - public virtual DbSet Permissionaroles { get; set; } - - public virtual DbSet Roles { get; set; } - - public virtual DbSet Users { get; set; } - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder - .UseCollation("latin1_swedish_ci") - .HasCharSet("latin1"); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("admins") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.RoleId, "RoleId"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Created) - .HasComment("创建时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.Password) - .HasMaxLength(50) - .HasComment("密码"); - entity.Property(e => e.RoleId) - .HasComment("角色") - .HasColumnType("int(11)"); - entity.Property(e => e.State) - .HasComment("状态(0:正常,2:封禁) ") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.Updated) - .HasComment("更新时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.Username) - .HasMaxLength(50) - .HasComment("用户名"); - - entity.HasOne(d => d.Role).WithMany(p => p.Admins) - .HasForeignKey(d => d.RoleId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("admins_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("conversations") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.UserId, "Userid"); - - entity.HasIndex(e => e.LastReadSequenceId, "LastReadSequenceId"); - - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.ChatType).HasColumnType("int(11)"); - entity.Property(e => e.LastMessage) - .HasMaxLength(255) - .HasComment("最后一条最新消息"); - entity.Property(e => e.LastMessageTime) - .HasComment("最后一条消息发送时间") - .HasColumnType("datetime"); - entity.Property(e => e.LastReadSequenceId) - .HasComment("最后一条未读消息ID ") - .HasColumnType("int(11)") - .HasColumnName("lastReadMessageId"); - entity.Property(e => e.StreamKey) - .HasMaxLength(255) - .HasComment("消息推送唯一标识符"); - entity.Property(e => e.TargetId) - .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) ") - .HasColumnType("int(11)"); - entity.Property(e => e.UnreadCount) - .HasComment("未读消息数 ") - .HasColumnType("int(11)"); - entity.Property(e => e.UserId) - .HasComment("用户") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.User).WithMany(p => p.Conversations) - .HasForeignKey(d => d.UserId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("conversations_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("devices") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.UserId, "Userid"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Dtype) - .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)") - .HasColumnType("tinyint(4)") - .HasColumnName("DType"); - entity.Property(e => e.LastLogin) - .HasComment("最后一次登录 ") - .HasColumnType("datetime"); - entity.Property(e => e.UserId) - .HasComment("设备所属用户 ") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.User).WithMany(p => p.Devices) - .HasForeignKey(d => d.UserId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("devices_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("files") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.MessageId, "Messageld"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Created) - .HasComment("创建时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.MessageId) - .HasComment("关联消息ID ") - .HasColumnType("int(11)"); - entity.Property(e => e.Name) - .HasMaxLength(50) - .HasComment("文件名 "); - entity.Property(e => e.Size) - .HasComment("文件大小(单位:KB) ") - .HasColumnType("int(11)"); - entity.Property(e => e.FileType) - .HasMaxLength(10) - .HasComment("文件类型 "); - entity.Property(e => e.Url) - .HasMaxLength(100) - .HasComment("文件储存URL ") - .HasColumnName("URL"); - - entity.HasOne(d => d.Message).WithMany(p => p.Files) - .HasForeignKey(d => d.MessageId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("files_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("friends") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.Id, "ID"); - - entity.HasIndex(e => new { e.UserId, e.FriendId }, "Userld"); - - entity.HasIndex(e => e.FriendId, "用户2id"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Avatar) - .HasMaxLength(255) - .HasComment("好友头像"); - entity.Property(e => e.Created) - .HasComment("好友关系创建时间") - .HasColumnType("datetime"); - entity.Property(e => e.FriendId) - .HasComment("用户2ID") - .HasColumnType("int(11)"); - entity.Property(e => e.RemarkName) - .HasMaxLength(20) - .HasComment("好友备注名"); - entity.Property(e => e.Status) - .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.UserId) - .HasComment("用户ID") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.FriendNavigation).WithMany(p => p.FriendFriendNavigations) - .HasForeignKey(d => d.FriendId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("用户2id"); - - entity.HasOne(d => d.User).WithMany(p => p.FriendUsers) - .HasForeignKey(d => d.UserId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("用户id"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("friend_request") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.RequestUser, "RequestUser"); - - entity.HasIndex(e => e.ResponseUser, "ResponseUser"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Created) - .HasComment("申请时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.Description) - .HasComment("申请附言 ") - .HasColumnType("text"); - entity.Property(e => e.RemarkName) - .HasMaxLength(20) - .HasComment("备注"); - entity.Property(e => e.RequestUser) - .HasComment("申请人 ") - .HasColumnType("int(11)"); - entity.Property(e => e.ResponseUser) - .HasComment("被申请人 ") - .HasColumnType("int(11)"); - entity.Property(e => e.State) - .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) ") - .HasColumnType("tinyint(4)"); - - entity.HasOne(d => d.RequestUserNavigation).WithMany(p => p.FriendRequestRequestUserNavigations) - .HasForeignKey(d => d.RequestUser) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("friend_request_ibfk_1"); - - entity.HasOne(d => d.ResponseUserNavigation).WithMany(p => p.FriendRequestResponseUserNavigations) - .HasForeignKey(d => d.ResponseUser) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("friend_request_ibfk_2"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("groups") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.GroupMaster, "GroupMaster"); - - entity.HasIndex(e => e.Id, "ID"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.AllMembersBanned) - .HasComment("全员禁言(0允许发言,2全员禁言)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.Announcement) - .HasComment("群公告") - .HasColumnType("text"); - entity.Property(e => e.Auhority) - .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.Avatar) - .HasMaxLength(255) - .HasComment("群头像"); - entity.Property(e => e.Created) - .HasComment("群聊创建时间") - .HasColumnType("datetime"); - entity.Property(e => e.GroupMaster) - .HasComment("群主") - .HasColumnType("int(11)"); - entity.Property(e => e.Name) - .HasMaxLength(20) - .HasComment("群聊名称"); - entity.Property(e => e.Status) - .HasComment("群聊状态\r\n(1:正常,2:封禁)") - .HasColumnType("tinyint(4)"); - - entity.HasOne(d => d.GroupMasterNavigation).WithMany(p => p.Groups) - .HasForeignKey(d => d.GroupMaster) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("groups_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("group_invite") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.GroupId, "GroupId"); - - entity.HasIndex(e => e.InviteUser, "InviteUser"); - - entity.HasIndex(e => e.InvitedUser, "InvitedUser"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Created) - .HasComment("创建时间") - .HasColumnType("datetime"); - entity.Property(e => e.GroupId) - .HasComment("群聊编号") - .HasColumnType("int(11)"); - entity.Property(e => e.InviteUser) - .HasComment("邀请用户") - .HasColumnType("int(11)"); - entity.Property(e => e.InvitedUser) - .HasComment("被邀请用户") - .HasColumnType("int(11)"); - entity.Property(e => e.State) - .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)") - .HasColumnType("tinyint(4)"); - - entity.HasOne(d => d.Group).WithMany(p => p.GroupInvites) - .HasForeignKey(d => d.GroupId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("group_invite_ibfk_2"); - - entity.HasOne(d => d.InviteUserNavigation).WithMany(p => p.GroupInviteInviteUserNavigations) - .HasForeignKey(d => d.InviteUser) - .HasConstraintName("group_invite_ibfk_1"); - - entity.HasOne(d => d.InvitedUserNavigation).WithMany(p => p.GroupInviteInvitedUserNavigations) - .HasForeignKey(d => d.InvitedUser) - .HasConstraintName("group_invite_ibfk_3"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("group_member") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.GroupId, "Groupld"); - - entity.HasIndex(e => e.Id, "ID"); - - entity.HasIndex(e => e.UserId, "Userld"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Created) - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("加入群聊时间") - .HasColumnType("datetime"); - entity.Property(e => e.GroupId) - .HasComment("群聊编号") - .HasColumnType("int(11)"); - entity.Property(e => e.Role) - .HasComment("成员角色(0:普通成员,1:管理员,2:群主)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.UserId) - .HasComment("用户编号") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.Group).WithMany(p => p.GroupMembers) - .HasForeignKey(d => d.GroupId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("group_member_ibfk_2"); - - entity.HasOne(d => d.User).WithMany(p => p.GroupMembers) - .HasForeignKey(d => d.UserId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("group_member_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("group_request") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.GroupId, "GroupId"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Created) - .HasComment("创建时间") - .HasColumnType("datetime"); - entity.Property(e => e.Description) - .HasComment("入群附言") - .HasColumnType("text"); - entity.Property(e => e.GroupId) - .HasComment("群聊编号\r\n") - .HasColumnType("int(11)"); - entity.Property(e => e.State) - .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.UserId) - .HasComment("申请人 ") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.Group).WithMany(p => p.GroupRequests) - .HasForeignKey(d => d.GroupId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("group_request_ibfk_1"); - - entity.HasOne(d => d.User).WithMany(p => p.GroupRequests) - .HasForeignKey(d => d.UserId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("group_request_ibfk_2"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("login_log") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.UserId, "Userld"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Dtype) - .HasComment("设备类型(通Devices/DType) ") - .HasColumnType("tinyint(4)") - .HasColumnName("DType"); - entity.Property(e => e.Logined) - .HasComment("登录时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.State) - .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) ") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.UserId) - .HasComment("登录用户 ") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.User).WithMany(p => p.LoginLogs) - .HasForeignKey(d => d.UserId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("login_log_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("messages") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.Sender, "Sender"); - - - //设置联合唯一索引 - entity.HasIndex(e => new { e.SequenceId, e.StreamKey }) - .IsUnique(); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.ChatType) - .HasComment("聊天类型\r\n(0:私聊,1:群聊)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.Content) - .HasComment("消息内容 ") - .HasColumnType("text"); - entity.Property(e => e.Created) - .HasComment("发送时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.MsgType) - .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.Recipient) - .HasComment("接收者(私聊为用户ID,群聊为群聊ID) ") - .HasColumnType("int(11)"); - entity.Property(e => e.Sender) - .HasComment("发送者 ") - .HasColumnType("int(11)"); - entity.Property(e => e.State) - .HasComment("消息状态(0:已发送,1:已撤回) ") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.StreamKey) - .HasMaxLength(255) - .HasComment("消息推送唯一标识符"); - - entity.HasOne(d => d.SenderNavigation).WithMany(p => p.Messages) - .HasForeignKey(d => d.Sender) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("messages_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("notifications") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.UserId, "Userld"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Content) - .HasComment("通知内容") - .HasColumnType("text"); - entity.Property(e => e.Created) - .HasComment("创建时间") - .HasColumnType("datetime"); - entity.Property(e => e.Ntype) - .HasComment("通知类型(0:文本)") - .HasColumnType("tinyint(4)") - .HasColumnName("NType"); - entity.Property(e => e.Title) - .HasMaxLength(40) - .HasComment("通知标题"); - entity.Property(e => e.UserId) - .HasComment("接收人(为空为全体通知)") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.User).WithMany(p => p.Notifications) - .HasForeignKey(d => d.UserId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("notifications_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("permissions") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Code) - .HasComment("权限编码 ") - .HasColumnType("int(11)"); - entity.Property(e => e.Created) - .HasComment("创建时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.Name) - .HasMaxLength(50) - .HasComment("权限名称 "); - entity.Property(e => e.Ptype) - .HasComment("权限类型(0:增,1:删,2:改,3:查) ") - .HasColumnType("int(11)") - .HasColumnName("PType"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("permissionarole") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.PermissionId, "Permissionld"); - - entity.HasIndex(e => e.RoleId, "Roleld"); - - entity.Property(e => e.Id) - .ValueGeneratedNever() - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.PermissionId) - .HasComment("权限 ") - .HasColumnType("int(11)"); - entity.Property(e => e.RoleId) - .HasComment("角色 ") - .HasColumnType("int(11)"); - - entity.HasOne(d => d.Permission).WithMany(p => p.Permissionaroles) - .HasForeignKey(d => d.PermissionId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("permissionarole_ibfk_2"); - - entity.HasOne(d => d.Role).WithMany(p => p.Permissionaroles) - .HasForeignKey(d => d.RoleId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("permissionarole_ibfk_1"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("roles") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Created) - .HasComment("创建时间 ") - .HasColumnType("datetime"); - entity.Property(e => e.Description) - .HasComment("角色描述 ") - .HasColumnType("text"); - entity.Property(e => e.Name) - .HasMaxLength(20) - .HasComment("角色名称 "); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PRIMARY"); - - entity - .ToTable("users") - .HasCharSet("utf8mb4") - .UseCollation("utf8mb4_general_ci"); - - entity.HasIndex(e => e.Id, "ID"); - - entity.HasIndex(e => e.Username, "Username").IsUnique(); - - entity.Property(e => e.Id) - .HasColumnType("int(11)") - .HasColumnName("ID"); - entity.Property(e => e.Avatar) - .HasMaxLength(255) - .HasComment("用户头像链接"); - entity.Property(e => e.Created) - .HasDefaultValueSql("'1970-01-01 00:00:00'") - .HasComment("创建时间") - .HasColumnType("datetime"); - entity.Property(e => e.IsDeleted) - .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.NickName) - .HasMaxLength(50) - .HasComment("用户昵称"); - entity.Property(e => e.OnlineStatus) - .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.Password) - .HasMaxLength(50) - .HasComment("密码"); - entity.Property(e => e.Status) - .HasDefaultValueSql("'1'") - .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)") - .HasColumnType("tinyint(4)"); - entity.Property(e => e.Updated) - .HasComment("修改时间") - .HasColumnType("datetime"); - entity.Property(e => e.Username) - .HasMaxLength(50) - .HasComment("唯一用户名"); - }); - - OnModelCreatingPartial(modelBuilder); - } - - partial void OnModelCreatingPartial(ModelBuilder modelBuilder); -} +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Models; + +public partial class ImContext : DbContext +{ + public ImContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet Admins { get; set; } + + public virtual DbSet Conversations { get; set; } + + public virtual DbSet Devices { get; set; } + + public virtual DbSet Files { get; set; } + + public virtual DbSet Friends { get; set; } + + public virtual DbSet FriendRequests { get; set; } + + public virtual DbSet Groups { get; set; } + + public virtual DbSet GroupInvites { get; set; } + + public virtual DbSet GroupMembers { get; set; } + + public virtual DbSet GroupRequests { get; set; } + + public virtual DbSet LoginLogs { get; set; } + + public virtual DbSet Messages { get; set; } + + public virtual DbSet Notifications { get; set; } + + public virtual DbSet Permissions { get; set; } + + public virtual DbSet Permissionaroles { get; set; } + + public virtual DbSet Roles { get; set; } + + public virtual DbSet Users { get; set; } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasCharSet("latin1"); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("admins") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.RoleId, "RoleId"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Created) + .HasComment("创建时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.Password) + .HasMaxLength(50) + .HasComment("密码"); + entity.Property(e => e.RoleId) + .HasComment("角色") + .HasColumnType("int(11)"); + entity.Property(e => e.State) + .HasComment("状态(0:正常,2:封禁) ") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.Updated) + .HasComment("更新时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.Username) + .HasMaxLength(50) + .HasComment("用户名"); + + entity.HasOne(d => d.Role).WithMany(p => p.Admins) + .HasForeignKey(d => d.RoleId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("admins_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("conversations") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.UserId, "Userid"); + + entity.HasIndex(e => e.LastReadSequenceId, "LastReadSequenceId"); + + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.ChatType).HasColumnType("int(11)"); + entity.Property(e => e.LastMessage) + .HasMaxLength(255) + .HasComment("最后一条最新消息"); + entity.Property(e => e.LastMessageTime) + .HasComment("最后一条消息发送时间") + .HasColumnType("datetime"); + entity.Property(e => e.LastReadSequenceId) + .HasComment("最后一条未读消息ID ") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId"); + entity.Property(e => e.StreamKey) + .HasMaxLength(255) + .HasComment("消息推送唯一标识符"); + entity.Property(e => e.TargetId) + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) ") + .HasColumnType("int(11)"); + entity.Property(e => e.UnreadCount) + .HasComment("未读消息数 ") + .HasColumnType("int(11)"); + entity.Property(e => e.UserId) + .HasComment("用户") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.User).WithMany(p => p.Conversations) + .HasForeignKey(d => d.UserId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("conversations_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("devices") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.UserId, "Userid"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Dtype) + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)") + .HasColumnType("tinyint(4)") + .HasColumnName("DType"); + entity.Property(e => e.LastLogin) + .HasComment("最后一次登录 ") + .HasColumnType("datetime"); + entity.Property(e => e.UserId) + .HasComment("设备所属用户 ") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.User).WithMany(p => p.Devices) + .HasForeignKey(d => d.UserId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("devices_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("files") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.MessageId, "Messageld"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Created) + .HasComment("创建时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.MessageId) + .HasComment("关联消息ID ") + .HasColumnType("int(11)"); + entity.Property(e => e.Name) + .HasMaxLength(50) + .HasComment("文件名 "); + entity.Property(e => e.Size) + .HasComment("文件大小(单位:KB) ") + .HasColumnType("int(11)"); + entity.Property(e => e.FileType) + .HasMaxLength(10) + .HasComment("文件类型 "); + entity.Property(e => e.Url) + .HasMaxLength(100) + .HasComment("文件储存URL ") + .HasColumnName("URL"); + + entity.HasOne(d => d.Message).WithMany(p => p.Files) + .HasForeignKey(d => d.MessageId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("files_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("friends") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.Id, "ID"); + + entity.HasIndex(e => new { e.UserId, e.FriendId }, "Userld"); + + entity.HasIndex(e => e.FriendId, "用户2id"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Avatar) + .HasMaxLength(255) + .HasComment("好友头像"); + entity.Property(e => e.Created) + .HasComment("好友关系创建时间") + .HasColumnType("datetime"); + entity.Property(e => e.FriendId) + .HasComment("用户2ID") + .HasColumnType("int(11)"); + entity.Property(e => e.RemarkName) + .HasMaxLength(20) + .HasComment("好友备注名"); + entity.Property(e => e.Status) + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.UserId) + .HasComment("用户ID") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.FriendNavigation).WithMany(p => p.FriendFriendNavigations) + .HasForeignKey(d => d.FriendId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("用户2id"); + + entity.HasOne(d => d.User).WithMany(p => p.FriendUsers) + .HasForeignKey(d => d.UserId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("用户id"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("friend_request") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.RequestUser, "RequestUser"); + + entity.HasIndex(e => e.ResponseUser, "ResponseUser"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Created) + .HasComment("申请时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.Description) + .HasComment("申请附言 ") + .HasColumnType("text"); + entity.Property(e => e.RemarkName) + .HasMaxLength(20) + .HasComment("备注"); + entity.Property(e => e.RequestUser) + .HasComment("申请人 ") + .HasColumnType("int(11)"); + entity.Property(e => e.ResponseUser) + .HasComment("被申请人 ") + .HasColumnType("int(11)"); + entity.Property(e => e.State) + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) ") + .HasColumnType("tinyint(4)"); + + entity.HasOne(d => d.RequestUserNavigation).WithMany(p => p.FriendRequestRequestUserNavigations) + .HasForeignKey(d => d.RequestUser) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("friend_request_ibfk_1"); + + entity.HasOne(d => d.ResponseUserNavigation).WithMany(p => p.FriendRequestResponseUserNavigations) + .HasForeignKey(d => d.ResponseUser) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("friend_request_ibfk_2"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("groups") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.GroupMaster, "GroupMaster"); + + entity.HasIndex(e => e.Id, "ID"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.AllMembersBanned) + .HasComment("全员禁言(0允许发言,2全员禁言)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.Announcement) + .HasComment("群公告") + .HasColumnType("text"); + entity.Property(e => e.Auhority) + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.Avatar) + .HasMaxLength(255) + .HasComment("群头像"); + entity.Property(e => e.Created) + .HasComment("群聊创建时间") + .HasColumnType("datetime"); + entity.Property(e => e.GroupMaster) + .HasComment("群主") + .HasColumnType("int(11)"); + entity.Property(e => e.Name) + .HasMaxLength(20) + .HasComment("群聊名称"); + entity.Property(e => e.Status) + .HasComment("群聊状态\r\n(1:正常,2:封禁)") + .HasColumnType("tinyint(4)"); + + entity.HasOne(d => d.GroupMasterNavigation).WithMany(p => p.Groups) + .HasForeignKey(d => d.GroupMaster) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("groups_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("group_invite") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.GroupId, "GroupId"); + + entity.HasIndex(e => e.InviteUser, "InviteUser"); + + entity.HasIndex(e => e.InvitedUser, "InvitedUser"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Created) + .HasComment("创建时间") + .HasColumnType("datetime"); + entity.Property(e => e.GroupId) + .HasComment("群聊编号") + .HasColumnType("int(11)"); + entity.Property(e => e.InviteUser) + .HasComment("邀请用户") + .HasColumnType("int(11)"); + entity.Property(e => e.InvitedUser) + .HasComment("被邀请用户") + .HasColumnType("int(11)"); + entity.Property(e => e.State) + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)") + .HasColumnType("tinyint(4)"); + + entity.HasOne(d => d.Group).WithMany(p => p.GroupInvites) + .HasForeignKey(d => d.GroupId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("group_invite_ibfk_2"); + + entity.HasOne(d => d.InviteUserNavigation).WithMany(p => p.GroupInviteInviteUserNavigations) + .HasForeignKey(d => d.InviteUser) + .HasConstraintName("group_invite_ibfk_1"); + + entity.HasOne(d => d.InvitedUserNavigation).WithMany(p => p.GroupInviteInvitedUserNavigations) + .HasForeignKey(d => d.InvitedUser) + .HasConstraintName("group_invite_ibfk_3"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("group_member") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.GroupId, "Groupld"); + + entity.HasIndex(e => e.Id, "ID"); + + entity.HasIndex(e => e.UserId, "Userld"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Created) + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间") + .HasColumnType("datetime"); + entity.Property(e => e.GroupId) + .HasComment("群聊编号") + .HasColumnType("int(11)"); + entity.Property(e => e.Role) + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.UserId) + .HasComment("用户编号") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.Group).WithMany(p => p.GroupMembers) + .HasForeignKey(d => d.GroupId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("group_member_ibfk_2"); + + entity.HasOne(d => d.User).WithMany(p => p.GroupMembers) + .HasForeignKey(d => d.UserId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("group_member_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("group_request") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.GroupId, "GroupId"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Created) + .HasComment("创建时间") + .HasColumnType("datetime"); + entity.Property(e => e.Description) + .HasComment("入群附言") + .HasColumnType("text"); + entity.Property(e => e.GroupId) + .HasComment("群聊编号\r\n") + .HasColumnType("int(11)"); + entity.Property(e => e.State) + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.UserId) + .HasComment("申请人 ") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.Group).WithMany(p => p.GroupRequests) + .HasForeignKey(d => d.GroupId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("group_request_ibfk_1"); + + entity.HasOne(d => d.User).WithMany(p => p.GroupRequests) + .HasForeignKey(d => d.UserId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("group_request_ibfk_2"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("login_log") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.UserId, "Userld"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Dtype) + .HasComment("设备类型(通Devices/DType) ") + .HasColumnType("tinyint(4)") + .HasColumnName("DType"); + entity.Property(e => e.Logined) + .HasComment("登录时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.State) + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) ") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.UserId) + .HasComment("登录用户 ") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.User).WithMany(p => p.LoginLogs) + .HasForeignKey(d => d.UserId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("login_log_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("messages") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.Sender, "Sender"); + + + //设置联合唯一索引 + entity.HasIndex(e => new { e.SequenceId, e.StreamKey }) + .IsUnique(); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.ChatType) + .HasComment("聊天类型\r\n(0:私聊,1:群聊)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.Content) + .HasComment("消息内容 ") + .HasColumnType("text"); + entity.Property(e => e.Created) + .HasComment("发送时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.MsgType) + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.Recipient) + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) ") + .HasColumnType("int(11)"); + entity.Property(e => e.Sender) + .HasComment("发送者 ") + .HasColumnType("int(11)"); + entity.Property(e => e.State) + .HasComment("消息状态(0:已发送,1:已撤回) ") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.StreamKey) + .HasMaxLength(255) + .HasComment("消息推送唯一标识符"); + + entity.HasOne(d => d.SenderNavigation).WithMany(p => p.Messages) + .HasForeignKey(d => d.Sender) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("messages_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("notifications") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.UserId, "Userld"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Content) + .HasComment("通知内容") + .HasColumnType("text"); + entity.Property(e => e.Created) + .HasComment("创建时间") + .HasColumnType("datetime"); + entity.Property(e => e.Ntype) + .HasComment("通知类型(0:文本)") + .HasColumnType("tinyint(4)") + .HasColumnName("NType"); + entity.Property(e => e.Title) + .HasMaxLength(40) + .HasComment("通知标题"); + entity.Property(e => e.UserId) + .HasComment("接收人(为空为全体通知)") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.User).WithMany(p => p.Notifications) + .HasForeignKey(d => d.UserId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("notifications_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("permissions") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Code) + .HasComment("权限编码 ") + .HasColumnType("int(11)"); + entity.Property(e => e.Created) + .HasComment("创建时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.Name) + .HasMaxLength(50) + .HasComment("权限名称 "); + entity.Property(e => e.Ptype) + .HasComment("权限类型(0:增,1:删,2:改,3:查) ") + .HasColumnType("int(11)") + .HasColumnName("PType"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("permissionarole") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.PermissionId, "Permissionld"); + + entity.HasIndex(e => e.RoleId, "Roleld"); + + entity.Property(e => e.Id) + .ValueGeneratedNever() + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.PermissionId) + .HasComment("权限 ") + .HasColumnType("int(11)"); + entity.Property(e => e.RoleId) + .HasComment("角色 ") + .HasColumnType("int(11)"); + + entity.HasOne(d => d.Permission).WithMany(p => p.Permissionaroles) + .HasForeignKey(d => d.PermissionId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("permissionarole_ibfk_2"); + + entity.HasOne(d => d.Role).WithMany(p => p.Permissionaroles) + .HasForeignKey(d => d.RoleId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("permissionarole_ibfk_1"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("roles") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Created) + .HasComment("创建时间 ") + .HasColumnType("datetime"); + entity.Property(e => e.Description) + .HasComment("角色描述 ") + .HasColumnType("text"); + entity.Property(e => e.Name) + .HasMaxLength(20) + .HasComment("角色名称 "); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("users") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + entity.HasIndex(e => e.Id, "ID"); + + entity.HasIndex(e => e.Username, "Username").IsUnique(); + + entity.Property(e => e.Id) + .HasColumnType("int(11)") + .HasColumnName("ID"); + entity.Property(e => e.Avatar) + .HasMaxLength(255) + .HasComment("用户头像链接"); + entity.Property(e => e.Created) + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间") + .HasColumnType("datetime"); + entity.Property(e => e.IsDeleted) + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.NickName) + .HasMaxLength(50) + .HasComment("用户昵称"); + entity.Property(e => e.OnlineStatus) + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.Password) + .HasMaxLength(50) + .HasComment("密码"); + entity.Property(e => e.Status) + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)") + .HasColumnType("tinyint(4)"); + entity.Property(e => e.Updated) + .HasComment("修改时间") + .HasColumnType("datetime"); + entity.Property(e => e.Username) + .HasMaxLength(50) + .HasComment("唯一用户名"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/backend/IM_API/Models/LoginLog.cs b/backend/IM_API/Models/LoginLog.cs index 1a71b72..5448de8 100644 --- a/backend/IM_API/Models/LoginLog.cs +++ b/backend/IM_API/Models/LoginLog.cs @@ -1,33 +1,33 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class LoginLog -{ - public int Id { get; set; } - - /// - /// 设备类型(通Devices/DType) - /// - public sbyte Dtype { get; set; } - - /// - /// 登录时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Logined { get; set; } - - /// - /// 登录用户 - /// - public int UserId { get; set; } - - /// - /// 登录状态(0:登陆成功,1:未验证,2:已被拒绝) - /// - public sbyte State { get; set; } - - public virtual User User { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class LoginLog +{ + public int Id { get; set; } + + /// + /// 设备类型(通Devices/DType) + /// + public sbyte Dtype { get; set; } + + /// + /// 登录时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Logined { get; set; } + + /// + /// 登录用户 + /// + public int UserId { get; set; } + + /// + /// 登录状态(0:登陆成功,1:未验证,2:已被拒绝) + /// + public sbyte State { get; set; } + + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/LoginLogExt.cs b/backend/IM_API/Models/LoginLogExt.cs index 333a76a..25c0d79 100644 --- a/backend/IM_API/Models/LoginLogExt.cs +++ b/backend/IM_API/Models/LoginLogExt.cs @@ -1,11 +1,11 @@ -namespace IM_API.Models -{ - public partial class LoginLog - { - public LoginState StateEnum - { - get => (LoginState)State; - set => State = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class LoginLog + { + public LoginState StateEnum + { + get => (LoginState)State; + set => State = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/LoginState.cs b/backend/IM_API/Models/LoginState.cs index e2e32d4..91609dc 100644 --- a/backend/IM_API/Models/LoginState.cs +++ b/backend/IM_API/Models/LoginState.cs @@ -1,18 +1,18 @@ -namespace IM_API.Models -{ - public enum LoginState - { - /// - /// 登陆成功 - /// - Success = 0, - /// - /// 未验证 - /// - Unauthenticated = 1, - /// - /// 已拒绝 - /// - Declined = 2 - } -} +namespace IM_API.Models +{ + public enum LoginState + { + /// + /// 登陆成功 + /// + Success = 0, + /// + /// 未验证 + /// + Unauthenticated = 1, + /// + /// 已拒绝 + /// + Declined = 2 + } +} diff --git a/backend/IM_API/Models/Message.cs b/backend/IM_API/Models/Message.cs index df859ec..1b2871a 100644 --- a/backend/IM_API/Models/Message.cs +++ b/backend/IM_API/Models/Message.cs @@ -1,66 +1,66 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Message -{ - public int Id { get; set; } - - /// - /// 聊天类型 - /// (0:私聊,1:群聊) - /// - public sbyte ChatType { get; set; } - - /// - /// 消息类型 - /// (0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天) - /// - public sbyte MsgType { get; set; } - public Guid ClientMsgId { get; set; } - - /// - /// 消息内容 - /// - public string Content { get; set; } = null!; - - /// - /// 发送者 - /// - public int Sender { get; set; } - - /// - /// 接收者(私聊为用户ID,群聊为群聊ID) - /// - public int Recipient { get; set; } - - /// - /// 消息状态(0:已发送,1:已撤回) - /// - public sbyte State { get; set; } - - /// - /// 发送时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - /// - /// 消息推送唯一标识符 - /// - public string StreamKey { get; set; } = null!; - - /// - /// 消息排序标识 - /// - - public long SequenceId { get; set; } - - public virtual ICollection Conversations { get; set; } = new List(); - - public virtual ICollection Files { get; set; } = new List(); - - public virtual User SenderNavigation { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Message +{ + public int Id { get; set; } + + /// + /// 聊天类型 + /// (0:私聊,1:群聊) + /// + public sbyte ChatType { get; set; } + + /// + /// 消息类型 + /// (0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天) + /// + public sbyte MsgType { get; set; } + public Guid ClientMsgId { get; set; } + + /// + /// 消息内容 + /// + public string Content { get; set; } = null!; + + /// + /// 发送者 + /// + public int Sender { get; set; } + + /// + /// 接收者(私聊为用户ID,群聊为群聊ID) + /// + public int Recipient { get; set; } + + /// + /// 消息状态(0:已发送,1:已撤回) + /// + public sbyte State { get; set; } + + /// + /// 发送时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + /// + /// 消息推送唯一标识符 + /// + public string StreamKey { get; set; } = null!; + + /// + /// 消息排序标识 + /// + + public long SequenceId { get; set; } + + public virtual ICollection Conversations { get; set; } = new List(); + + public virtual ICollection Files { get; set; } = new List(); + + public virtual User SenderNavigation { get; set; } = null!; +} diff --git a/backend/IM_API/Models/MessageExt.cs b/backend/IM_API/Models/MessageExt.cs index 9ba3976..9343bb4 100644 --- a/backend/IM_API/Models/MessageExt.cs +++ b/backend/IM_API/Models/MessageExt.cs @@ -1,21 +1,21 @@ -namespace IM_API.Models -{ - public partial class Message - { - public MessageMsgType MsgTypeEnum - { - get => (MessageMsgType)MsgType; - set => MsgType = (sbyte) value; - } - public ChatType ChatTypeEnum - { - get => (ChatType)ChatType; - set => ChatType = (sbyte)value; - } - public MessageState StateEnum - { - get => (MessageState)State; - set => State = (sbyte) value; - } - } -} +namespace IM_API.Models +{ + public partial class Message + { + public MessageMsgType MsgTypeEnum + { + get => (MessageMsgType)MsgType; + set => MsgType = (sbyte) value; + } + public ChatType ChatTypeEnum + { + get => (ChatType)ChatType; + set => ChatType = (sbyte)value; + } + public MessageState StateEnum + { + get => (MessageState)State; + set => State = (sbyte) value; + } + } +} diff --git a/backend/IM_API/Models/MessageMsgType.cs b/backend/IM_API/Models/MessageMsgType.cs index a02832b..1a50e9f 100644 --- a/backend/IM_API/Models/MessageMsgType.cs +++ b/backend/IM_API/Models/MessageMsgType.cs @@ -1,13 +1,13 @@ -namespace IM_API.Models -{ - public enum MessageMsgType - { - Text = 0, - Image = 1, - Voice = 2, - Video = 3, - File = 4, - VoiceChat = 5, - VideoChat = 6 - } -} +namespace IM_API.Models +{ + public enum MessageMsgType + { + Text = 0, + Image = 1, + Voice = 2, + Video = 3, + File = 4, + VoiceChat = 5, + VideoChat = 6 + } +} diff --git a/backend/IM_API/Models/MessageState.cs b/backend/IM_API/Models/MessageState.cs index 8d75248..988b806 100644 --- a/backend/IM_API/Models/MessageState.cs +++ b/backend/IM_API/Models/MessageState.cs @@ -1,14 +1,14 @@ -namespace IM_API.Models -{ - public enum MessageState - { - /// - /// 已发送 - /// - Sent = 0, - /// - /// 已撤回 - /// - Withdrwan = 1 - } -} +namespace IM_API.Models +{ + public enum MessageState + { + /// + /// 已发送 + /// + Sent = 0, + /// + /// 已撤回 + /// + Withdrwan = 1 + } +} diff --git a/backend/IM_API/Models/Notification.cs b/backend/IM_API/Models/Notification.cs index 4286e14..c137ba3 100644 --- a/backend/IM_API/Models/Notification.cs +++ b/backend/IM_API/Models/Notification.cs @@ -1,38 +1,38 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Notification -{ - public int Id { get; set; } - - /// - /// 接收人(为空为全体通知) - /// - public int UserId { get; set; } - - /// - /// 通知类型(0:文本) - /// - public sbyte Ntype { get; set; } - - /// - /// 通知标题 - /// - public string Title { get; set; } = null!; - - /// - /// 通知内容 - /// - public string Content { get; set; } = null!; - - /// - /// 创建时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - public virtual User User { get; set; } = null!; -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Notification +{ + public int Id { get; set; } + + /// + /// 接收人(为空为全体通知) + /// + public int UserId { get; set; } + + /// + /// 通知类型(0:文本) + /// + public sbyte Ntype { get; set; } + + /// + /// 通知标题 + /// + public string Title { get; set; } = null!; + + /// + /// 通知内容 + /// + public string Content { get; set; } = null!; + + /// + /// 创建时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + public virtual User User { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Permission.cs b/backend/IM_API/Models/Permission.cs index 9c522c1..2f0db7a 100644 --- a/backend/IM_API/Models/Permission.cs +++ b/backend/IM_API/Models/Permission.cs @@ -1,33 +1,33 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Permission -{ - public int Id { get; set; } - - /// - /// 权限类型(0:增,1:删,2:改,3:查) - /// - public int Ptype { get; set; } - - /// - /// 权限名称 - /// - public string Name { get; set; } = null!; - - /// - /// 权限编码 - /// - public int Code { get; set; } - - /// - /// 创建时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - public virtual ICollection Permissionaroles { get; set; } = new List(); -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Permission +{ + public int Id { get; set; } + + /// + /// 权限类型(0:增,1:删,2:改,3:查) + /// + public int Ptype { get; set; } + + /// + /// 权限名称 + /// + public string Name { get; set; } = null!; + + /// + /// 权限编码 + /// + public int Code { get; set; } + + /// + /// 创建时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + public virtual ICollection Permissionaroles { get; set; } = new List(); +} diff --git a/backend/IM_API/Models/Permissionarole.cs b/backend/IM_API/Models/Permissionarole.cs index 7ea65cb..1d63234 100644 --- a/backend/IM_API/Models/Permissionarole.cs +++ b/backend/IM_API/Models/Permissionarole.cs @@ -1,23 +1,23 @@ -using System; -using System.Collections.Generic; - -namespace IM_API.Models; - -public partial class Permissionarole -{ - public int Id { get; set; } - - /// - /// 角色 - /// - public int RoleId { get; set; } - - /// - /// 权限 - /// - public int PermissionId { get; set; } - - public virtual Permission Permission { get; set; } = null!; - - public virtual Role Role { get; set; } = null!; -} +using System; +using System.Collections.Generic; + +namespace IM_API.Models; + +public partial class Permissionarole +{ + public int Id { get; set; } + + /// + /// 角色 + /// + public int RoleId { get; set; } + + /// + /// 权限 + /// + public int PermissionId { get; set; } + + public virtual Permission Permission { get; set; } = null!; + + public virtual Role Role { get; set; } = null!; +} diff --git a/backend/IM_API/Models/Role.cs b/backend/IM_API/Models/Role.cs index a6a393e..471e3c9 100644 --- a/backend/IM_API/Models/Role.cs +++ b/backend/IM_API/Models/Role.cs @@ -1,30 +1,30 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; - -namespace IM_API.Models; - -public partial class Role -{ - public int Id { get; set; } - - /// - /// 角色名称 - /// - public string Name { get; set; } = null!; - - /// - /// 角色描述 - /// - public string Description { get; set; } = null!; - - /// - /// 创建时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset Created { get; set; } - - public virtual ICollection Admins { get; set; } = new List(); - - public virtual ICollection Permissionaroles { get; set; } = new List(); -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; + +namespace IM_API.Models; + +public partial class Role +{ + public int Id { get; set; } + + /// + /// 角色名称 + /// + public string Name { get; set; } = null!; + + /// + /// 角色描述 + /// + public string Description { get; set; } = null!; + + /// + /// 创建时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset Created { get; set; } + + public virtual ICollection Admins { get; set; } = new List(); + + public virtual ICollection Permissionaroles { get; set; } = new List(); +} diff --git a/backend/IM_API/Models/User.cs b/backend/IM_API/Models/User.cs index ece733f..3cbceb8 100644 --- a/backend/IM_API/Models/User.cs +++ b/backend/IM_API/Models/User.cs @@ -1,91 +1,91 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; -using System.Text.Json.Serialization; - -namespace IM_API.Models; - -public partial class User -{ - public int Id { get; set; } - - /// - /// 唯一用户名 - /// - public string Username { get; set; } = null!; - - /// - /// 密码 - /// - public string Password { get; set; } = null!; - - /// - /// 用户昵称 - /// - public string? NickName { get; set; } - - /// - /// 用户在线状态 - /// 0(默认):不在线 - /// 1:在线 - /// - public sbyte OnlineStatus { get; set; } - - /// - /// 创建时间 - /// - public DateTimeOffset Created { get; set; } - - /// - /// 修改时间 - /// - [Column(TypeName = "datetimeoffset")] - public DateTimeOffset? Updated { get; set; } - - /// - /// 账户状态 - /// (0:未激活,1:正常,2:封禁) - /// - public sbyte Status { get; set; } - - /// - /// 软删除标识 - /// 0:账号正常 - /// 1:账号已删除 - /// - public sbyte IsDeleted { get; set; } - - /// - /// 用户头像链接 - /// - public string? Avatar { get; set; } - [JsonIgnore] - - public virtual ICollection Conversations { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection Devices { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection FriendFriendNavigations { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection FriendRequestRequestUserNavigations { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection FriendRequestResponseUserNavigations { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection FriendUsers { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection GroupInviteInviteUserNavigations { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection GroupInviteInvitedUserNavigations { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection GroupMembers { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection GroupRequests { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection Groups { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection LoginLogs { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection Messages { get; set; } = new List(); - [JsonIgnore] - public virtual ICollection Notifications { get; set; } = new List(); -} +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Text.Json.Serialization; + +namespace IM_API.Models; + +public partial class User +{ + public int Id { get; set; } + + /// + /// 唯一用户名 + /// + public string Username { get; set; } = null!; + + /// + /// 密码 + /// + public string Password { get; set; } = null!; + + /// + /// 用户昵称 + /// + public string? NickName { get; set; } + + /// + /// 用户在线状态 + /// 0(默认):不在线 + /// 1:在线 + /// + public sbyte OnlineStatus { get; set; } + + /// + /// 创建时间 + /// + public DateTimeOffset Created { get; set; } + + /// + /// 修改时间 + /// + [Column(TypeName = "datetimeoffset")] + public DateTimeOffset? Updated { get; set; } + + /// + /// 账户状态 + /// (0:未激活,1:正常,2:封禁) + /// + public sbyte Status { get; set; } + + /// + /// 软删除标识 + /// 0:账号正常 + /// 1:账号已删除 + /// + public sbyte IsDeleted { get; set; } + + /// + /// 用户头像链接 + /// + public string? Avatar { get; set; } + [JsonIgnore] + + public virtual ICollection Conversations { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection Devices { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection FriendFriendNavigations { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection FriendRequestRequestUserNavigations { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection FriendRequestResponseUserNavigations { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection FriendUsers { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection GroupInviteInviteUserNavigations { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection GroupInviteInvitedUserNavigations { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection GroupMembers { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection GroupRequests { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection Groups { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection LoginLogs { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection Messages { get; set; } = new List(); + [JsonIgnore] + public virtual ICollection Notifications { get; set; } = new List(); +} diff --git a/backend/IM_API/Models/UserExt.cs b/backend/IM_API/Models/UserExt.cs index 2ef533a..2d2dd9e 100644 --- a/backend/IM_API/Models/UserExt.cs +++ b/backend/IM_API/Models/UserExt.cs @@ -1,16 +1,16 @@ -namespace IM_API.Models -{ - public partial class User - { - public UserOnlineStatus OnlineStatusEnum - { - get => (UserOnlineStatus)OnlineStatus; - set => OnlineStatus = (sbyte)value; - } - public UserStatus StatusEnum - { - get => (UserStatus)Status; - set => Status = (sbyte)value; - } - } -} +namespace IM_API.Models +{ + public partial class User + { + public UserOnlineStatus OnlineStatusEnum + { + get => (UserOnlineStatus)OnlineStatus; + set => OnlineStatus = (sbyte)value; + } + public UserStatus StatusEnum + { + get => (UserStatus)Status; + set => Status = (sbyte)value; + } + } +} diff --git a/backend/IM_API/Models/UserOlineStatus.cs b/backend/IM_API/Models/UserOlineStatus.cs index ac3f15f..0957ae6 100644 --- a/backend/IM_API/Models/UserOlineStatus.cs +++ b/backend/IM_API/Models/UserOlineStatus.cs @@ -1,18 +1,18 @@ -namespace IM_API.Models -{ - /// - /// 用户在线状态 - /// - public enum UserOnlineStatus : sbyte - { - /// - /// 不在线 (0) - /// - Offline = 0, - - /// - /// 在线 (1) - /// - Online = 1 - } -} +namespace IM_API.Models +{ + /// + /// 用户在线状态 + /// + public enum UserOnlineStatus : sbyte + { + /// + /// 不在线 (0) + /// + Offline = 0, + + /// + /// 在线 (1) + /// + Online = 1 + } +} diff --git a/backend/IM_API/Models/UserStatus.cs b/backend/IM_API/Models/UserStatus.cs index e08f38b..5cfdcb8 100644 --- a/backend/IM_API/Models/UserStatus.cs +++ b/backend/IM_API/Models/UserStatus.cs @@ -1,9 +1,9 @@ -namespace IM_API.Models -{ - public enum UserStatus:SByte - { - Inactive = 0, - Normal = 1, - Banned = 2 - } -} +namespace IM_API.Models +{ + public enum UserStatus:SByte + { + Inactive = 0, + Normal = 1, + Banned = 2 + } +} diff --git a/backend/IM_API/Program.cs b/backend/IM_API/Program.cs index c006058..c5ee3be 100644 --- a/backend/IM_API/Program.cs +++ b/backend/IM_API/Program.cs @@ -1,160 +1,160 @@ - -using IM_API.Configs; -using IM_API.Configs.Options; -using IM_API.Filters; -using IM_API.Hubs; -using IM_API.Models; -using IM_API.Tools; -using Microsoft.AspNetCore.Authentication.JwtBearer; -using Microsoft.EntityFrameworkCore; -using Microsoft.IdentityModel.Tokens; -using StackExchange.Redis; -using System.Text; -using System.Text.Json; -using System.Text.Json.Serialization; - -namespace IM_API -{ - public class Program - { - public static void Main(string[] args) - { - var builder = WebApplication.CreateBuilder(args); - - // Add services to the container. - IConfiguration configuration = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) - .Build(); - var conOptions = configuration.GetSection("ConnectionStrings").Get(); - //עݿ - builder.Services.AddDbContext(options => - { - options.UseMySql(conOptions.DefaultConnection,ServerVersion.AutoDetect(conOptions.DefaultConnection)); - }); - //עredis - var redis = ConnectionMultiplexer.Connect(conOptions.Redis); - builder.Services.AddSingleton(redis); - - builder.Services.AddStackExchangeRedisCache(options => - { - options.ConnectionMultiplexerFactory = () => Task.FromResult(redis); - }); - - builder.Services.AddRabbitMQ(configuration.GetSection("RabbitMqOptions").Get()); - - builder.Services.AddAllService(configuration); - - builder.Services.AddSignalR().AddJsonProtocol(options => - { - // öַ - options.PayloadSerializerOptions.Converters.Add(new JsonStringEnumConverter()); - options.PayloadSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; - }); - //Դ - builder.Services.AddCors(options => - { - options.AddDefaultPolicy(policy => - { - policy.AllowAnyHeader() - .AllowAnyMethod() - .AllowAnyHeader() - .AllowCredentials() - .SetIsOriginAllowed(origin => - { - // Աػضε - var host = new Uri(origin).Host; - return host == "localhost" || host.StartsWith("192.168."); - }); - }); - }); - //ƾ֤ - builder.Services.AddAuthentication(options => - { - options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; - options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; - }) - .AddJwtBearer(options => - { - //httpsDZ - options.RequireHttpsMetadata = false; - //token - options.SaveToken = true; - options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters - { - //֤ǩ - ValidateIssuer = true, - ValidIssuer = configuration["Jwt:Issuer"], - //֤ - ValidateAudience = true, - ValidAudience = configuration["Jwt:Audience"], - //֤ǩԿ - ValidateIssuerSigningKey = true, - IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["Jwt:Key"])), - //ʱƫ - ValidateLifetime = true, - ClockSkew = TimeSpan.FromSeconds(30) - - - }; - //websocket tokenƾ֤ - options.Events = new JwtBearerEvents { - OnMessageReceived = context => - { - var accessToken = context.Request.Query["access_token"]; - if (!string.IsNullOrEmpty(accessToken)) - { - context.Token = accessToken; - } - return Task.CompletedTask; - }, - OnAuthenticationFailed = context => - { - Console.WriteLine("Authentication failed: " + context.Exception.Message); - return Task.CompletedTask; - } - }; - }); - builder.Services.AddControllers(options => - { - options.Filters.Add(); - }).AddJsonOptions(options => - { - // ISO 8601 ʽ - //options.JsonSerializerOptions.Converters.Add(new UtcDateTimeConverter()); - // öתΪַ - options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); - // 飺շ - options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; - }); - builder.Services.AddModelValidation(configuration); - // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle - builder.Services.AddEndpointsApiExplorer(); - builder.Services.AddSwaggerGen(); - - var app = builder.Build(); - - app.UseCors(); - - // Configure the HTTP request pipeline. - if (app.Environment.IsDevelopment()) - { - app.UseSwagger(); - app.UseSwaggerUI(); - } - - app.UseHttpsRedirection(); - - app.UseAuthentication(); - app.UseAuthorization(); - - - - app.MapControllers(); - - app.MapHub("/chat").RequireCors(); - - app.Run(); - } - } -} + +using IM_API.Configs; +using IM_API.Configs.Options; +using IM_API.Filters; +using IM_API.Hubs; +using IM_API.Models; +using IM_API.Tools; +using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.EntityFrameworkCore; +using Microsoft.IdentityModel.Tokens; +using StackExchange.Redis; +using System.Text; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace IM_API +{ + public class Program + { + public static void Main(string[] args) + { + var builder = WebApplication.CreateBuilder(args); + + // Add services to the container. + IConfiguration configuration = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .Build(); + var conOptions = configuration.GetSection("ConnectionStrings").Get(); + //עݿ + builder.Services.AddDbContext(options => + { + options.UseMySql(conOptions.DefaultConnection,ServerVersion.AutoDetect(conOptions.DefaultConnection)); + }); + //עredis + var redis = ConnectionMultiplexer.Connect(conOptions.Redis); + builder.Services.AddSingleton(redis); + + builder.Services.AddStackExchangeRedisCache(options => + { + options.ConnectionMultiplexerFactory = () => Task.FromResult(redis); + }); + + builder.Services.AddRabbitMQ(configuration.GetSection("RabbitMqOptions").Get()); + + builder.Services.AddAllService(configuration); + + builder.Services.AddSignalR().AddJsonProtocol(options => + { + // öַ + options.PayloadSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + options.PayloadSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; + }); + //Դ + builder.Services.AddCors(options => + { + options.AddDefaultPolicy(policy => + { + policy.AllowAnyHeader() + .AllowAnyMethod() + .AllowAnyHeader() + .AllowCredentials() + .SetIsOriginAllowed(origin => + { + // Աػضε + var host = new Uri(origin).Host; + return host == "localhost" || host.StartsWith("192.168."); + }); + }); + }); + //ƾ֤ + builder.Services.AddAuthentication(options => + { + options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; + options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; + }) + .AddJwtBearer(options => + { + //httpsDZ + options.RequireHttpsMetadata = false; + //token + options.SaveToken = true; + options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters + { + //֤ǩ + ValidateIssuer = true, + ValidIssuer = configuration["Jwt:Issuer"], + //֤ + ValidateAudience = true, + ValidAudience = configuration["Jwt:Audience"], + //֤ǩԿ + ValidateIssuerSigningKey = true, + IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["Jwt:Key"])), + //ʱƫ + ValidateLifetime = true, + ClockSkew = TimeSpan.FromSeconds(30) + + + }; + //websocket tokenƾ֤ + options.Events = new JwtBearerEvents { + OnMessageReceived = context => + { + var accessToken = context.Request.Query["access_token"]; + if (!string.IsNullOrEmpty(accessToken)) + { + context.Token = accessToken; + } + return Task.CompletedTask; + }, + OnAuthenticationFailed = context => + { + Console.WriteLine("Authentication failed: " + context.Exception.Message); + return Task.CompletedTask; + } + }; + }); + builder.Services.AddControllers(options => + { + options.Filters.Add(); + }).AddJsonOptions(options => + { + // ISO 8601 ʽ + //options.JsonSerializerOptions.Converters.Add(new UtcDateTimeConverter()); + // öתΪַ + options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + // 飺շ + options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; + }); + builder.Services.AddModelValidation(configuration); + // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle + builder.Services.AddEndpointsApiExplorer(); + builder.Services.AddSwaggerGen(); + + var app = builder.Build(); + + app.UseCors(); + + // Configure the HTTP request pipeline. + if (app.Environment.IsDevelopment()) + { + app.UseSwagger(); + app.UseSwaggerUI(); + } + + app.UseHttpsRedirection(); + + app.UseAuthentication(); + app.UseAuthorization(); + + + + app.MapControllers(); + + app.MapHub("/chat").RequireCors(); + + app.Run(); + } + } +} diff --git a/backend/IM_API/Properties/launchSettings.json b/backend/IM_API/Properties/launchSettings.json index 758bd87..9d70aa6 100644 --- a/backend/IM_API/Properties/launchSettings.json +++ b/backend/IM_API/Properties/launchSettings.json @@ -1,52 +1,52 @@ -{ - "profiles": { - "http": { - "commandName": "Project", - "launchBrowser": true, - "launchUrl": "swagger", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "dotnetRunMessages": true, - "applicationUrl": "http://localhost:5202" - }, - "https": { - "commandName": "Project", - "launchBrowser": true, - "launchUrl": "swagger", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "dotnetRunMessages": true, - "applicationUrl": "https://localhost:7157;http://localhost:5202" - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "launchUrl": "swagger", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Container (Dockerfile)": { - "commandName": "Docker", - "launchBrowser": true, - "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", - "environmentVariables": { - "ASPNETCORE_HTTPS_PORTS": "8081", - "ASPNETCORE_HTTP_PORTS": "8080" - }, - "publishAllPorts": true, - "useSSL": true - } - }, - "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:39786", - "sslPort": 44308 - } - } +{ + "profiles": { + "http": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "http://localhost:5202" + }, + "https": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": true, + "applicationUrl": "https://localhost:7157;http://localhost:5202" + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "environmentVariables": { + "ASPNETCORE_HTTPS_PORTS": "8081", + "ASPNETCORE_HTTP_PORTS": "8080" + }, + "publishAllPorts": true, + "useSSL": true + } + }, + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:39786", + "sslPort": 44308 + } + } } \ No newline at end of file diff --git a/backend/IM_API/Services/AuthService.cs b/backend/IM_API/Services/AuthService.cs index 71898c1..c988c13 100644 --- a/backend/IM_API/Services/AuthService.cs +++ b/backend/IM_API/Services/AuthService.cs @@ -1,53 +1,53 @@ -using AutoMapper; -using IM_API.Dtos.Auth; -using IM_API.Dtos.User; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using Microsoft.EntityFrameworkCore; - -namespace IM_API.Services -{ - public class AuthService : IAuthService - { - private readonly ImContext _context; - private readonly ILogger _logger; - private readonly IMapper _mapper; - private readonly ICacheService _cache; - public AuthService(ImContext context, ILogger logger, IMapper mapper, ICacheService cache) - { - _context = context; - _logger = logger; - _mapper = mapper; - _cache = cache; - } - - public async Task LoginAsync(LoginRequestDto dto) - { - var userinfo = await _cache.GetUserCacheAsync(dto.Username); - if (userinfo != null && userinfo.Password == dto.Password) return userinfo; - string username = dto.Username; - string password = dto.Password; - var user = await _context.Users.FirstOrDefaultAsync(x => x.Username == username && x.Password == password); - if(user is null) - { - throw new BaseException(CodeDefine.PASSWORD_ERROR); - } - await _cache.SetUserCacheAsync(user); - return user; - } - - public async Task RegisterAsync(RegisterRequestDto dto) - { - string username = dto.Username; - //用户是否存在 - bool isExist = await _context.Users.AnyAsync(x => x.Username == username); - if (isExist) throw new BaseException(CodeDefine.USER_ALREADY_EXISTS); - User user = _mapper.Map(dto); - _context.Users.Add(user); - await _context.SaveChangesAsync(); - return _mapper.Map(user); - } - } -} +using AutoMapper; +using IM_API.Dtos.Auth; +using IM_API.Dtos.User; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Services +{ + public class AuthService : IAuthService + { + private readonly ImContext _context; + private readonly ILogger _logger; + private readonly IMapper _mapper; + private readonly ICacheService _cache; + public AuthService(ImContext context, ILogger logger, IMapper mapper, ICacheService cache) + { + _context = context; + _logger = logger; + _mapper = mapper; + _cache = cache; + } + + public async Task LoginAsync(LoginRequestDto dto) + { + var userinfo = await _cache.GetUserCacheAsync(dto.Username); + if (userinfo != null && userinfo.Password == dto.Password) return userinfo; + string username = dto.Username; + string password = dto.Password; + var user = await _context.Users.FirstOrDefaultAsync(x => x.Username == username && x.Password == password); + if(user is null) + { + throw new BaseException(CodeDefine.PASSWORD_ERROR); + } + await _cache.SetUserCacheAsync(user); + return user; + } + + public async Task RegisterAsync(RegisterRequestDto dto) + { + string username = dto.Username; + //用户是否存在 + bool isExist = await _context.Users.AnyAsync(x => x.Username == username); + if (isExist) throw new BaseException(CodeDefine.USER_ALREADY_EXISTS); + User user = _mapper.Map(dto); + _context.Users.Add(user); + await _context.SaveChangesAsync(); + return _mapper.Map(user); + } + } +} diff --git a/backend/IM_API/Services/ConversationService.cs b/backend/IM_API/Services/ConversationService.cs index 52c6856..3d35929 100644 --- a/backend/IM_API/Services/ConversationService.cs +++ b/backend/IM_API/Services/ConversationService.cs @@ -1,182 +1,182 @@ -using AutoMapper; -using IM_API.Dtos.Conversation; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using IM_API.VOs.Conversation; -using Microsoft.EntityFrameworkCore; - -namespace IM_API.Services -{ - public class ConversationService : IConversationService - { - private readonly ImContext _context; - private readonly IMapper _mapper; - public ConversationService(ImContext context, IMapper mapper) - { - _context = context; - _mapper = mapper; - } - #region 删除用户会话 - public async Task ClearConversationsAsync(int userId) - { - await _context.Conversations.Where(x => x.UserId == userId).ExecuteDeleteAsync(); - return true; - } - - - #endregion - #region 获取用户会话列表 - public async Task> GetConversationsAsync(int userId) - { - // 1. 获取私聊会话 - var privateList = await (from c in _context.Conversations - join f in _context.Friends on new { c.UserId, c.TargetId } - equals new { UserId = f.UserId, TargetId = f.FriendId } - where c.UserId == userId && c.ChatType == ChatType.PRIVATE - select new { c, f.Avatar, f.RemarkName }) - .ToListAsync(); - - // 2. 获取群聊会话 - var groupList = await (from c in _context.Conversations - join g in _context.Groups on c.TargetId equals g.Id - where c.UserId == userId && c.ChatType == ChatType.GROUP - select new { c, g.Avatar, g.Name,g.MaxSequenceId,g.LastMessage }) - .ToListAsync(); - - var privateDtos = privateList.Select(x => - { - var dto = _mapper.Map(x.c); - dto.TargetAvatar = x.Avatar; - dto.TargetName = x.RemarkName; - return dto; - }); - - var groupDtos = groupList.Select(x => - { - var dto = _mapper.Map(x.c); - dto.TargetAvatar = x.Avatar; - dto.TargetName = x.Name; - dto.UnreadCount = (int)(x.MaxSequenceId - x.c.LastReadSequenceId ?? 0); - dto.LastSequenceId = x.MaxSequenceId; - dto.LastMessage = x.LastMessage; - return dto; - }); - - // 4. 合并并排序 - return privateDtos.Concat(groupDtos) - .OrderByDescending(x => x.DateTime) - .ToList(); - } - #endregion - #region 删除单个会话 - public async Task DeleteConversationAsync(int conversationId) - { - var conversation = await _context.Conversations.FirstOrDefaultAsync(x => x.Id == conversationId); - if (conversation == null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); - _context.Conversations.Remove(conversation); - await _context.SaveChangesAsync(); - return true; - } - - - #endregion - #region 获取用户所有统一聊天凭证 - public async Task> GetUserAllStreamKeyAsync(int userId) - { - return await _context.Conversations.Where(x => x.UserId == userId) - .Select(x => x.StreamKey) - .Distinct() - .ToListAsync(); - } - #endregion - - #region 获取单个会话信息 - public async Task GetConversationByIdAsync(int userId, int conversationId) - { - var conversation = await _context.Conversations - .FirstOrDefaultAsync( - x => x.UserId == userId && x.Id == conversationId - ); - if (conversation is null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); - var dto = _mapper.Map(conversation); - if(conversation.ChatType == ChatType.PRIVATE) - { - var friendInfo = await _context.Friends.Include(n => n.FriendNavigation).FirstOrDefaultAsync( - x => x.UserId == conversation.UserId && x.FriendId == conversation.TargetId - ); - if (friendInfo is null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); - _mapper.Map(friendInfo,dto); - } - if(conversation.ChatType == ChatType.GROUP) - { - var groupInfo = await _context.Groups.FirstOrDefaultAsync( - x => x.Id == conversation.TargetId - ); - if (groupInfo is null) throw new BaseException(CodeDefine.GROUP_NOT_FOUND); - _mapper.Map(groupInfo, dto); - } - return dto; - } - #endregion - - public async Task ClearUnreadCountAsync(int userId, int conversationId) - { - var conversation = await _context.Conversations.FirstOrDefaultAsync(x => x.UserId == userId && x.Id == conversationId); - if (conversation is null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); - var message = await _context.Messages - .Where(x => x.StreamKey == conversation.StreamKey) - .OrderByDescending(x => x.SequenceId) - .FirstOrDefaultAsync(); - if(message != null) - { - conversation.UnreadCount = 0; - conversation.LastMessage = message.Content; - conversation.LastReadSequenceId = message.SequenceId; - conversation.LastMessageTime = message.Created; - _context.Conversations.Update(conversation); - await _context.SaveChangesAsync(); - } - - return true; - - } - - public async Task MakeConversationAsync(int userAId, int userBId, ChatType chatType) - { - var userAcExist = await _context.Conversations.AnyAsync(x => x.UserId == userAId && x.TargetId == userBId); - if (userAcExist) return; - var streamKey = chatType == ChatType.PRIVATE ? - StreamKeyBuilder.Private(userAId, userBId) : StreamKeyBuilder.Group(userBId); - var conversation = new Conversation() - { - ChatType = chatType, - LastMessage = "", - LastMessageTime = DateTime.Now, - LastReadSequenceId = null, - StreamKey = streamKey, - TargetId = userBId, - UnreadCount = 0, - UserId = userAId - - }; - _context.Conversations.Add(conversation); - await _context.SaveChangesAsync(); - } - public async Task UpdateConversationAfterSentAsync(UpdateConversationDto dto) - { - var cList = await _context.Conversations.Where(x => x.StreamKey == dto.StreamKey).ToListAsync(); - foreach(var c in cList) - { - bool isSender = dto.SenderId == c.UserId; - c.LastMessage = dto.LastMessage; - c.LastMessageTime = dto.DateTime; - c.LastReadSequenceId = isSender ? dto.LastSequenceId : c.LastReadSequenceId; - c.UnreadCount = isSender ? 0 : c.UnreadCount + 1; - } - _context.Conversations.UpdateRange(cList); - await _context.SaveChangesAsync(); - } - } +using AutoMapper; +using IM_API.Dtos.Conversation; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using IM_API.VOs.Conversation; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Services +{ + public class ConversationService : IConversationService + { + private readonly ImContext _context; + private readonly IMapper _mapper; + public ConversationService(ImContext context, IMapper mapper) + { + _context = context; + _mapper = mapper; + } + #region 删除用户会话 + public async Task ClearConversationsAsync(int userId) + { + await _context.Conversations.Where(x => x.UserId == userId).ExecuteDeleteAsync(); + return true; + } + + + #endregion + #region 获取用户会话列表 + public async Task> GetConversationsAsync(int userId) + { + // 1. 获取私聊会话 + var privateList = await (from c in _context.Conversations + join f in _context.Friends on new { c.UserId, c.TargetId } + equals new { UserId = f.UserId, TargetId = f.FriendId } + where c.UserId == userId && c.ChatType == ChatType.PRIVATE + select new { c, f.Avatar, f.RemarkName }) + .ToListAsync(); + + // 2. 获取群聊会话 + var groupList = await (from c in _context.Conversations + join g in _context.Groups on c.TargetId equals g.Id + where c.UserId == userId && c.ChatType == ChatType.GROUP + select new { c, g.Avatar, g.Name,g.MaxSequenceId,g.LastMessage }) + .ToListAsync(); + + var privateDtos = privateList.Select(x => + { + var dto = _mapper.Map(x.c); + dto.TargetAvatar = x.Avatar; + dto.TargetName = x.RemarkName; + return dto; + }); + + var groupDtos = groupList.Select(x => + { + var dto = _mapper.Map(x.c); + dto.TargetAvatar = x.Avatar; + dto.TargetName = x.Name; + dto.UnreadCount = (int)(x.MaxSequenceId - x.c.LastReadSequenceId ?? 0); + dto.LastSequenceId = x.MaxSequenceId; + dto.LastMessage = x.LastMessage; + return dto; + }); + + // 4. 合并并排序 + return privateDtos.Concat(groupDtos) + .OrderByDescending(x => x.DateTime) + .ToList(); + } + #endregion + #region 删除单个会话 + public async Task DeleteConversationAsync(int conversationId) + { + var conversation = await _context.Conversations.FirstOrDefaultAsync(x => x.Id == conversationId); + if (conversation == null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); + _context.Conversations.Remove(conversation); + await _context.SaveChangesAsync(); + return true; + } + + + #endregion + #region 获取用户所有统一聊天凭证 + public async Task> GetUserAllStreamKeyAsync(int userId) + { + return await _context.Conversations.Where(x => x.UserId == userId) + .Select(x => x.StreamKey) + .Distinct() + .ToListAsync(); + } + #endregion + + #region 获取单个会话信息 + public async Task GetConversationByIdAsync(int userId, int conversationId) + { + var conversation = await _context.Conversations + .FirstOrDefaultAsync( + x => x.UserId == userId && x.Id == conversationId + ); + if (conversation is null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); + var dto = _mapper.Map(conversation); + if(conversation.ChatType == ChatType.PRIVATE) + { + var friendInfo = await _context.Friends.Include(n => n.FriendNavigation).FirstOrDefaultAsync( + x => x.UserId == conversation.UserId && x.FriendId == conversation.TargetId + ); + if (friendInfo is null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); + _mapper.Map(friendInfo,dto); + } + if(conversation.ChatType == ChatType.GROUP) + { + var groupInfo = await _context.Groups.FirstOrDefaultAsync( + x => x.Id == conversation.TargetId + ); + if (groupInfo is null) throw new BaseException(CodeDefine.GROUP_NOT_FOUND); + _mapper.Map(groupInfo, dto); + } + return dto; + } + #endregion + + public async Task ClearUnreadCountAsync(int userId, int conversationId) + { + var conversation = await _context.Conversations.FirstOrDefaultAsync(x => x.UserId == userId && x.Id == conversationId); + if (conversation is null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); + var message = await _context.Messages + .Where(x => x.StreamKey == conversation.StreamKey) + .OrderByDescending(x => x.SequenceId) + .FirstOrDefaultAsync(); + if(message != null) + { + conversation.UnreadCount = 0; + conversation.LastMessage = message.Content; + conversation.LastReadSequenceId = message.SequenceId; + conversation.LastMessageTime = message.Created; + _context.Conversations.Update(conversation); + await _context.SaveChangesAsync(); + } + + return true; + + } + + public async Task MakeConversationAsync(int userAId, int userBId, ChatType chatType) + { + var userAcExist = await _context.Conversations.AnyAsync(x => x.UserId == userAId && x.TargetId == userBId); + if (userAcExist) return; + var streamKey = chatType == ChatType.PRIVATE ? + StreamKeyBuilder.Private(userAId, userBId) : StreamKeyBuilder.Group(userBId); + var conversation = new Conversation() + { + ChatType = chatType, + LastMessage = "", + LastMessageTime = DateTime.Now, + LastReadSequenceId = null, + StreamKey = streamKey, + TargetId = userBId, + UnreadCount = 0, + UserId = userAId + + }; + _context.Conversations.Add(conversation); + await _context.SaveChangesAsync(); + } + public async Task UpdateConversationAfterSentAsync(UpdateConversationDto dto) + { + var cList = await _context.Conversations.Where(x => x.StreamKey == dto.StreamKey).ToListAsync(); + foreach(var c in cList) + { + bool isSender = dto.SenderId == c.UserId; + c.LastMessage = dto.LastMessage; + c.LastMessageTime = dto.DateTime; + c.LastReadSequenceId = isSender ? dto.LastSequenceId : c.LastReadSequenceId; + c.UnreadCount = isSender ? 0 : c.UnreadCount + 1; + } + _context.Conversations.UpdateRange(cList); + await _context.SaveChangesAsync(); + } + } } \ No newline at end of file diff --git a/backend/IM_API/Services/FriendService.cs b/backend/IM_API/Services/FriendService.cs index 8ed6ba8..a53a441 100644 --- a/backend/IM_API/Services/FriendService.cs +++ b/backend/IM_API/Services/FriendService.cs @@ -1,220 +1,220 @@ -using AutoMapper; -using IM_API.Domain.Events; -using IM_API.Dtos.Friend; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using MassTransit; -using Microsoft.EntityFrameworkCore; - -namespace IM_API.Services -{ - public class FriendService : IFriendSerivce - { - private readonly ImContext _context; - private readonly ILogger _logger; - private readonly IMapper _mapper; - private readonly IPublishEndpoint _endpoint; - public FriendService(ImContext context, ILogger logger, IMapper mapper, IPublishEndpoint endpoint) - { - _context = context; - _logger = logger; - _mapper = mapper; - _endpoint = endpoint; - } - #region 拉黑好友 - public async Task BlockeFriendAsync(int friendId) - { - var friend = await _context.Friends.FirstOrDefaultAsync(x => x.Id == friendId); - if (friend == null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); - friend.StatusEnum = FriendStatus.Blocked; - await _context.SaveChangesAsync(); - return true; - } - #endregion - #region 通过用户id拉黑好友 - public async Task BlockFriendByUserIdAsync(int userId, int toUserId) - { - var friend = await _context.Friends.FirstOrDefaultAsync(x => x.UserId == userId && x.FriendId == toUserId); - if (friend == null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); - friend.StatusEnum = FriendStatus.Blocked; - await _context.SaveChangesAsync(); - return true; - } - #endregion - #region 删除好友关系 - public async Task DeleteFriendAsync(int friendId) - { - var friend = await _context.Friends.FirstOrDefaultAsync(x => x.Id == friendId); - if (friend is null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); - _context.Friends.Remove(friend); - await _context.SaveChangesAsync(); - return true; - } - #endregion - #region 通过用户id删除好友关系 - public async Task DeleteFriendByUserIdAsync(int userId, int toUserId) - { - var friend = await _context.Friends.FirstOrDefaultAsync(x => x.UserId == userId && x.FriendId == toUserId); - if (friend is null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); - _context.Friends.Remove(friend); - await _context.SaveChangesAsync(); - return true; - } - #endregion - #region 获取好友列表 - - public async Task> GetFriendListAsync(int userId, int page, int limit, bool desc) - { - var query = _context.Friends.Include(u => u.FriendNavigation).Where(x => x.UserId == userId && x.Status == (sbyte)FriendStatus.Added); - if (desc) - { - query = query.OrderByDescending(x => x.UserId); - } - var friendList = await query.Skip(((page - 1) * limit)).Take(limit).ToListAsync(); - return _mapper.Map>(friendList); - } - #endregion - #region 获取好友请求列表 - public async Task> GetFriendRequestListAsync(int userId, int page, int limit, bool desc) - { - var query = _context.FriendRequests - .Include(x => x.ResponseUserNavigation) - .Include(x => x.RequestUserNavigation) - .Where( - x => (x.ResponseUser == userId) || - x.RequestUser == userId - ) - .Select(s => new FriendRequestResDto - { - Id = s.Id, - RequestUser = s.RequestUser, - ResponseUser = s.ResponseUser, - Avatar = s.RequestUser == userId ? s.ResponseUserNavigation.Avatar : s.RequestUserNavigation.Avatar, - Created = s.Created, - NickName = s.RequestUser == userId ? s.ResponseUserNavigation.NickName : s.RequestUserNavigation.NickName, - Description = s.Description, - State = (FriendRequestState)s.State - }) - ; - query = query.OrderByDescending(x => x.Id); - var friendRequestList = await query.Skip(((page - 1) * limit)).Take(limit).ToListAsync(); - return friendRequestList; - } - #endregion - #region 处理好友请求 - public async Task HandleFriendRequestAsync(HandleFriendRequestDto requestDto) - { - //查询好友请求记录 - var friendRequest = await _context.FriendRequests - .Include(e => e.ResponseUserNavigation) - .FirstOrDefaultAsync(x => x.Id == requestDto.RequestId); - - if (friendRequest is null) throw new BaseException(CodeDefine.FRIEND_REQUEST_NOT_FOUND); - - //查询好友关系 - var friend = await _context.Friends.FirstOrDefaultAsync( - x => x.UserId == friendRequest.RequestUser && x.FriendId == friendRequest.ResponseUser - ); - if (friend != null) throw new BaseException(CodeDefine.ALREADY_FRIENDS); - //处理好友请求操作 - switch (requestDto.Action) - { - //拒绝后标记 - case HandleFriendRequestAction.Reject: - friendRequest.StateEnum = FriendRequestState.Declined; - break; - - //同意后标记 - case HandleFriendRequestAction.Accept: - friendRequest.StateEnum = FriendRequestState.Passed; - await _endpoint.Publish(new FriendAddEvent() - { - AggregateId = friendRequest.Id.ToString(), - OccurredAt = DateTime.Now, - Created = DateTime.Now, - EventId = Guid.NewGuid(), - OperatorId = friendRequest.ResponseUser, - RequestInfo = _mapper.Map(friendRequest), - requestUserRemarkname = requestDto.RemarkName, - RequestUserId = friendRequest.RequestUser, - ResponseUserId = friendRequest.ResponseUser - - }); - break; - - //无效操作 - default: - throw new BaseException(CodeDefine.INVALID_ACTION); - } - - await _context.SaveChangesAsync(); - return true; - } - #endregion - #region 发起好友请求 - public async Task SendFriendRequestAsync(FriendRequestDto dto) - { - //查询用户是否存在 - bool isExist = await _context.Users.AnyAsync(x => x.Id == dto.ToUserId); - if (!isExist) throw new BaseException(CodeDefine.USER_NOT_FOUND); - bool isExistUser2 = await _context.Users.AnyAsync(x => x.Id == dto.FromUserId); - if(!isExistUser2) throw new BaseException(CodeDefine.USER_NOT_FOUND); - // 检查是否已有好友关系或待处理请求 - bool alreadyExists = await _context.FriendRequests.AnyAsync(x => - x.RequestUser == dto.FromUserId && x.ResponseUser == dto.ToUserId && x.State == (sbyte)FriendRequestState.Pending - ); - if (alreadyExists) - throw new BaseException(CodeDefine.FRIEND_REQUEST_EXISTS); - - var friendShip = await _context.Friends.FirstOrDefaultAsync(x => x.UserId == dto.FromUserId && x.FriendId == dto.ToUserId); - - //检查是否被对方拉黑 - bool isBlocked = friendShip != null && friendShip.StatusEnum == FriendStatus.Blocked; - if (isBlocked) - throw new BaseException(CodeDefine.FRIEND_REQUEST_REJECTED); - if (friendShip != null) - throw new BaseException(CodeDefine.ALREADY_FRIENDS); - //生成实体 - var friendRequst = _mapper.Map(dto); - _context.FriendRequests.Add(friendRequst); - await _context.SaveChangesAsync(); - await _endpoint.Publish(new RequestFriendEvent() - { - AggregateId = friendRequst.Id.ToString(), - OccurredAt = friendRequst.Created.UtcDateTime, - Description = friendRequst.Description, - EventId = Guid.NewGuid(), - FromUserId = friendRequst.RequestUser, - ToUserId = friendRequst.ResponseUser, - OperatorId = friendRequst.RequestUser - }); - return true; - } - #endregion - - #region 创建好友关系 - public async Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName) - { - bool userAexist = await _context.Friends.AnyAsync(x => x.UserId == userAId && x.FriendId == userBId); - if (!userAexist) - { - User? userbInfo = await _context.Users.FirstOrDefaultAsync(x => x.Id == userBId); - if (userbInfo is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); - Friend friendA = new Friend() - { - Avatar = userbInfo.Avatar, - Created = DateTime.Now, - FriendId = userbInfo.Id, - RemarkName = remarkName ?? userbInfo.NickName, - StatusEnum = FriendStatus.Added, - UserId = userAId - }; - _context.Friends.Add(friendA); - await _context.SaveChangesAsync(); - } - } - #endregion - } -} +using AutoMapper; +using IM_API.Domain.Events; +using IM_API.Dtos.Friend; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using MassTransit; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Services +{ + public class FriendService : IFriendSerivce + { + private readonly ImContext _context; + private readonly ILogger _logger; + private readonly IMapper _mapper; + private readonly IPublishEndpoint _endpoint; + public FriendService(ImContext context, ILogger logger, IMapper mapper, IPublishEndpoint endpoint) + { + _context = context; + _logger = logger; + _mapper = mapper; + _endpoint = endpoint; + } + #region 拉黑好友 + public async Task BlockeFriendAsync(int friendId) + { + var friend = await _context.Friends.FirstOrDefaultAsync(x => x.Id == friendId); + if (friend == null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); + friend.StatusEnum = FriendStatus.Blocked; + await _context.SaveChangesAsync(); + return true; + } + #endregion + #region 通过用户id拉黑好友 + public async Task BlockFriendByUserIdAsync(int userId, int toUserId) + { + var friend = await _context.Friends.FirstOrDefaultAsync(x => x.UserId == userId && x.FriendId == toUserId); + if (friend == null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); + friend.StatusEnum = FriendStatus.Blocked; + await _context.SaveChangesAsync(); + return true; + } + #endregion + #region 删除好友关系 + public async Task DeleteFriendAsync(int friendId) + { + var friend = await _context.Friends.FirstOrDefaultAsync(x => x.Id == friendId); + if (friend is null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); + _context.Friends.Remove(friend); + await _context.SaveChangesAsync(); + return true; + } + #endregion + #region 通过用户id删除好友关系 + public async Task DeleteFriendByUserIdAsync(int userId, int toUserId) + { + var friend = await _context.Friends.FirstOrDefaultAsync(x => x.UserId == userId && x.FriendId == toUserId); + if (friend is null) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); + _context.Friends.Remove(friend); + await _context.SaveChangesAsync(); + return true; + } + #endregion + #region 获取好友列表 + + public async Task> GetFriendListAsync(int userId, int page, int limit, bool desc) + { + var query = _context.Friends.Include(u => u.FriendNavigation).Where(x => x.UserId == userId && x.Status == (sbyte)FriendStatus.Added); + if (desc) + { + query = query.OrderByDescending(x => x.UserId); + } + var friendList = await query.Skip(((page - 1) * limit)).Take(limit).ToListAsync(); + return _mapper.Map>(friendList); + } + #endregion + #region 获取好友请求列表 + public async Task> GetFriendRequestListAsync(int userId, int page, int limit, bool desc) + { + var query = _context.FriendRequests + .Include(x => x.ResponseUserNavigation) + .Include(x => x.RequestUserNavigation) + .Where( + x => (x.ResponseUser == userId) || + x.RequestUser == userId + ) + .Select(s => new FriendRequestResDto + { + Id = s.Id, + RequestUser = s.RequestUser, + ResponseUser = s.ResponseUser, + Avatar = s.RequestUser == userId ? s.ResponseUserNavigation.Avatar : s.RequestUserNavigation.Avatar, + Created = s.Created, + NickName = s.RequestUser == userId ? s.ResponseUserNavigation.NickName : s.RequestUserNavigation.NickName, + Description = s.Description, + State = (FriendRequestState)s.State + }) + ; + query = query.OrderByDescending(x => x.Id); + var friendRequestList = await query.Skip(((page - 1) * limit)).Take(limit).ToListAsync(); + return friendRequestList; + } + #endregion + #region 处理好友请求 + public async Task HandleFriendRequestAsync(HandleFriendRequestDto requestDto) + { + //查询好友请求记录 + var friendRequest = await _context.FriendRequests + .Include(e => e.ResponseUserNavigation) + .FirstOrDefaultAsync(x => x.Id == requestDto.RequestId); + + if (friendRequest is null) throw new BaseException(CodeDefine.FRIEND_REQUEST_NOT_FOUND); + + //查询好友关系 + var friend = await _context.Friends.FirstOrDefaultAsync( + x => x.UserId == friendRequest.RequestUser && x.FriendId == friendRequest.ResponseUser + ); + if (friend != null) throw new BaseException(CodeDefine.ALREADY_FRIENDS); + //处理好友请求操作 + switch (requestDto.Action) + { + //拒绝后标记 + case HandleFriendRequestAction.Reject: + friendRequest.StateEnum = FriendRequestState.Declined; + break; + + //同意后标记 + case HandleFriendRequestAction.Accept: + friendRequest.StateEnum = FriendRequestState.Passed; + await _endpoint.Publish(new FriendAddEvent() + { + AggregateId = friendRequest.Id.ToString(), + OccurredAt = DateTime.Now, + Created = DateTime.Now, + EventId = Guid.NewGuid(), + OperatorId = friendRequest.ResponseUser, + RequestInfo = _mapper.Map(friendRequest), + requestUserRemarkname = requestDto.RemarkName, + RequestUserId = friendRequest.RequestUser, + ResponseUserId = friendRequest.ResponseUser + + }); + break; + + //无效操作 + default: + throw new BaseException(CodeDefine.INVALID_ACTION); + } + + await _context.SaveChangesAsync(); + return true; + } + #endregion + #region 发起好友请求 + public async Task SendFriendRequestAsync(FriendRequestDto dto) + { + //查询用户是否存在 + bool isExist = await _context.Users.AnyAsync(x => x.Id == dto.ToUserId); + if (!isExist) throw new BaseException(CodeDefine.USER_NOT_FOUND); + bool isExistUser2 = await _context.Users.AnyAsync(x => x.Id == dto.FromUserId); + if(!isExistUser2) throw new BaseException(CodeDefine.USER_NOT_FOUND); + // 检查是否已有好友关系或待处理请求 + bool alreadyExists = await _context.FriendRequests.AnyAsync(x => + x.RequestUser == dto.FromUserId && x.ResponseUser == dto.ToUserId && x.State == (sbyte)FriendRequestState.Pending + ); + if (alreadyExists) + throw new BaseException(CodeDefine.FRIEND_REQUEST_EXISTS); + + var friendShip = await _context.Friends.FirstOrDefaultAsync(x => x.UserId == dto.FromUserId && x.FriendId == dto.ToUserId); + + //检查是否被对方拉黑 + bool isBlocked = friendShip != null && friendShip.StatusEnum == FriendStatus.Blocked; + if (isBlocked) + throw new BaseException(CodeDefine.FRIEND_REQUEST_REJECTED); + if (friendShip != null) + throw new BaseException(CodeDefine.ALREADY_FRIENDS); + //生成实体 + var friendRequst = _mapper.Map(dto); + _context.FriendRequests.Add(friendRequst); + await _context.SaveChangesAsync(); + await _endpoint.Publish(new RequestFriendEvent() + { + AggregateId = friendRequst.Id.ToString(), + OccurredAt = friendRequst.Created.UtcDateTime, + Description = friendRequst.Description, + EventId = Guid.NewGuid(), + FromUserId = friendRequst.RequestUser, + ToUserId = friendRequst.ResponseUser, + OperatorId = friendRequst.RequestUser + }); + return true; + } + #endregion + + #region 创建好友关系 + public async Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName) + { + bool userAexist = await _context.Friends.AnyAsync(x => x.UserId == userAId && x.FriendId == userBId); + if (!userAexist) + { + User? userbInfo = await _context.Users.FirstOrDefaultAsync(x => x.Id == userBId); + if (userbInfo is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); + Friend friendA = new Friend() + { + Avatar = userbInfo.Avatar, + Created = DateTime.Now, + FriendId = userbInfo.Id, + RemarkName = remarkName ?? userbInfo.NickName, + StatusEnum = FriendStatus.Added, + UserId = userAId + }; + _context.Friends.Add(friendA); + await _context.SaveChangesAsync(); + } + } + #endregion + } +} diff --git a/backend/IM_API/Services/GroupService.cs b/backend/IM_API/Services/GroupService.cs index c78ebb9..85c0bb1 100644 --- a/backend/IM_API/Services/GroupService.cs +++ b/backend/IM_API/Services/GroupService.cs @@ -1,251 +1,251 @@ -using AutoMapper; -using AutoMapper.QueryableExtensions; -using IM_API.Domain.Events; -using IM_API.Dtos.Group; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using MassTransit; -using Microsoft.EntityFrameworkCore; -using System; - -namespace IM_API.Services -{ - public class GroupService : IGroupService - { - private readonly ImContext _context; - private readonly IMapper _mapper; - private readonly ILogger _logger; - private readonly IPublishEndpoint _endPoint; - private readonly IUserService _userService; - public GroupService(ImContext context, IMapper mapper, ILogger logger, - IPublishEndpoint publishEndpoint, IUserService userService) - { - _context = context; - _mapper = mapper; - _logger = logger; - _endPoint = publishEndpoint; - _userService = userService; - } - - private async Task> validFriendshipAsync (int userId, List ids) - { - DateTime dateTime = DateTime.UtcNow; - //验证被邀请用户是否为好友 - return await _context.Friends - .Where(f => f.UserId == userId && ids.Contains(f.FriendId)) - .Select(f => f.FriendId) - .ToListAsync(); - } - - public async Task CreateGroupAsync(int userId, GroupCreateDto groupCreateDto) - { - List userIds = groupCreateDto.UserIDs ?? []; - using var transaction = await _context.Database.BeginTransactionAsync(); - try - { - //先创建群 - DateTime dateTime = DateTime.Now; - Group group = _mapper.Map(groupCreateDto); - group.GroupMaster = userId; - _context.Groups.Add(group); - await _context.SaveChangesAsync(); - if (userIds.Count > 0) - { - //邀请好友 - await InviteUsersAsync(userId, group.Id ,userIds); - } - await transaction.CommitAsync(); - await _endPoint.Publish(new GroupJoinEvent - { - EventId = Guid.NewGuid(), - AggregateId = userId.ToString(), - GroupId = group.Id, - OccurredAt = dateTime, - OperatorId = userId, - UserId = userId, - IsCreated = true - }); - return _mapper.Map(group); - } - catch - { - await transaction.RollbackAsync(); - throw; - } - } - - public Task DeleteGroupAsync(int userId, int groupId) - { - throw new NotImplementedException(); - } - - public async Task InviteUsersAsync(int userId, int groupId, List userIds) - { - var group = await _context.Groups.FirstOrDefaultAsync( - x => x.Id == groupId) ?? throw new BaseException(CodeDefine.GROUP_NOT_FOUND); - //过滤非好友 - var groupInviteIds = await validFriendshipAsync(userId, userIds); - var inviteList = groupInviteIds.Select(id => new GroupInvite - { - Created = DateTime.UtcNow, - GroupId = group.Id, - InviteUser = userId, - InvitedUser = id, - StateEnum = GroupInviteState.Pending - }).ToList(); - _context.GroupInvites.AddRange(inviteList); - await _context.SaveChangesAsync(); - await _endPoint.Publish(new GroupInviteEvent - { - GroupId = groupId, - AggregateId = userId.ToString(), - OccurredAt = DateTime.UtcNow, - EventId = Guid.NewGuid(), - Ids = userIds, - OperatorId = userId, - UserId = userId - }); - } - - public async Task MakeGroupMemberAsync(int userId, int groupId ,GroupMemberRole? role) - { - var isExist = await _context.GroupMembers.AnyAsync(x => x.GroupId == groupId && x.UserId == userId); - if (isExist) return; - var groupMember = new GroupMember - { - UserId = userId, - Created = DateTime.UtcNow, - RoleEnum = role ?? GroupMemberRole.Normal, - GroupId = groupId - }; - _context.GroupMembers.Add(groupMember); - await _context.SaveChangesAsync(); - } - - public Task JoinGroupAsync(int userId, int groupId) - { - throw new NotImplementedException(); - } - - public async Task> GetGroupListAsync(int userId, int page, int limit, bool desc) - { - var query = _context.GroupMembers - .Where(x => x.UserId == userId) - .Select(s => s.Group); - if (desc) - { - query = query.OrderByDescending(x => x.Id); - } - var list = await query - .Skip((page - 1) * limit) - .Take(limit) - .ProjectTo(_mapper.ConfigurationProvider) - .ToListAsync(); - return list; - } - public async Task UpdateGroupConversationAsync(GroupUpdateConversationDto dto) - { - var group = await _context.Groups.FirstOrDefaultAsync(x => x.Id == dto.GroupId); - if (group is null) return; - group.LastMessage = dto.LastMessage; - group.MaxSequenceId = dto.MaxSequenceId; - group.LastSenderName = dto.LastSenderName; - group.LastUpdateTime = dto.LastUpdateTime; - _context.Groups.Update(group); - await _context.SaveChangesAsync(); - } - public async Task HandleGroupInviteAsync(int userid, HandleGroupInviteDto dto) - { - var user = _userService.GetUserInfoAsync(userid); - var inviteInfo = await _context.GroupInvites.FirstOrDefaultAsync(x => x.Id == dto.InviteId) - ?? throw new BaseException(CodeDefine.INVALID_ACTION); - if (inviteInfo.InvitedUser != userid) throw new BaseException(CodeDefine.AUTH_FAILED); - inviteInfo.StateEnum = dto.Action; - _context.GroupInvites.Update(inviteInfo); - await _context.SaveChangesAsync(); - await _endPoint.Publish(new GroupInviteActionUpdateEvent - { - Action = dto.Action, - AggregateId = userid.ToString(), - OccurredAt = DateTime.UtcNow, - EventId = Guid.NewGuid(), - GroupId = inviteInfo.GroupId, - InviteId = inviteInfo.Id, - InviteUserId = inviteInfo.InviteUser.Value, - OperatorId = userid, - UserId = userid - - }); - } - public async Task HandleGroupRequestAsync(int userid, HandleGroupRequestDto dto) - { - var user = _userService.GetUserInfoAsync(userid); - //判断请求存在 - var requestInfo = await _context.GroupRequests.FirstOrDefaultAsync(x => x.Id == dto.RequestId) - ?? throw new BaseException(CodeDefine.INVALID_ACTION); - //判断成员存在 - var memberInfo = await _context.GroupMembers.FirstOrDefaultAsync(x => x.UserId == userid) - ?? throw new BaseException(CodeDefine.NO_GROUP_PERMISSION); - //判断成员权限 - if (memberInfo.RoleEnum != GroupMemberRole.Master && memberInfo.RoleEnum != GroupMemberRole.Administrator) - throw new BaseException(CodeDefine.NO_GROUP_PERMISSION); - - requestInfo.StateEnum = dto.Action; - _context.GroupRequests.Update(requestInfo); - await _context.SaveChangesAsync(); - - await _endPoint.Publish(new GroupRequestUpdateEvent - { - Action = requestInfo.StateEnum, - AdminUserId = userid, - AggregateId = userid.ToString(), - OccurredAt = DateTime.UtcNow, - EventId = Guid.NewGuid(), - GroupId = requestInfo.GroupId, - OperatorId = userid, - UserId = requestInfo.UserId, - RequestId = requestInfo.Id - }); - } - public async Task MakeGroupRequestAsync(int userId, int? adminUserId, int groupId) - { - var requestInfo = await _context.GroupRequests - .FirstOrDefaultAsync(x => x.UserId == userId && x.GroupId == groupId); - if (requestInfo != null) return; - - var member = await _context.GroupMembers.FirstOrDefaultAsync( - x => x.UserId == adminUserId && x.GroupId == groupId); - var request = new GroupRequest - { - Created = DateTime.UtcNow, - Description = string.Empty, - GroupId = groupId, - UserId = userId, - StateEnum = GroupRequestState.Pending - }; - if(member != null && ( - member.RoleEnum == GroupMemberRole.Administrator || member.RoleEnum == GroupMemberRole.Master)) - { - request.StateEnum = GroupRequestState.Passed; - } - - _context.GroupRequests.Add(request); - await _context.SaveChangesAsync(); - - await _endPoint.Publish(new GroupRequestEvent - { - OccurredAt = DateTime.UtcNow, - Description = request.Description, - GroupId = request.GroupId, - Action = request.StateEnum, - UserId = userId, - AggregateId = userId.ToString(), - EventId = Guid.NewGuid(), - OperatorId = userId - }); - return; - } - } -} +using AutoMapper; +using AutoMapper.QueryableExtensions; +using IM_API.Domain.Events; +using IM_API.Dtos.Group; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using MassTransit; +using Microsoft.EntityFrameworkCore; +using System; + +namespace IM_API.Services +{ + public class GroupService : IGroupService + { + private readonly ImContext _context; + private readonly IMapper _mapper; + private readonly ILogger _logger; + private readonly IPublishEndpoint _endPoint; + private readonly IUserService _userService; + public GroupService(ImContext context, IMapper mapper, ILogger logger, + IPublishEndpoint publishEndpoint, IUserService userService) + { + _context = context; + _mapper = mapper; + _logger = logger; + _endPoint = publishEndpoint; + _userService = userService; + } + + private async Task> validFriendshipAsync (int userId, List ids) + { + DateTime dateTime = DateTime.UtcNow; + //验证被邀请用户是否为好友 + return await _context.Friends + .Where(f => f.UserId == userId && ids.Contains(f.FriendId)) + .Select(f => f.FriendId) + .ToListAsync(); + } + + public async Task CreateGroupAsync(int userId, GroupCreateDto groupCreateDto) + { + List userIds = groupCreateDto.UserIDs ?? []; + using var transaction = await _context.Database.BeginTransactionAsync(); + try + { + //先创建群 + DateTime dateTime = DateTime.Now; + Group group = _mapper.Map(groupCreateDto); + group.GroupMaster = userId; + _context.Groups.Add(group); + await _context.SaveChangesAsync(); + if (userIds.Count > 0) + { + //邀请好友 + await InviteUsersAsync(userId, group.Id ,userIds); + } + await transaction.CommitAsync(); + await _endPoint.Publish(new GroupJoinEvent + { + EventId = Guid.NewGuid(), + AggregateId = userId.ToString(), + GroupId = group.Id, + OccurredAt = dateTime, + OperatorId = userId, + UserId = userId, + IsCreated = true + }); + return _mapper.Map(group); + } + catch + { + await transaction.RollbackAsync(); + throw; + } + } + + public Task DeleteGroupAsync(int userId, int groupId) + { + throw new NotImplementedException(); + } + + public async Task InviteUsersAsync(int userId, int groupId, List userIds) + { + var group = await _context.Groups.FirstOrDefaultAsync( + x => x.Id == groupId) ?? throw new BaseException(CodeDefine.GROUP_NOT_FOUND); + //过滤非好友 + var groupInviteIds = await validFriendshipAsync(userId, userIds); + var inviteList = groupInviteIds.Select(id => new GroupInvite + { + Created = DateTime.UtcNow, + GroupId = group.Id, + InviteUser = userId, + InvitedUser = id, + StateEnum = GroupInviteState.Pending + }).ToList(); + _context.GroupInvites.AddRange(inviteList); + await _context.SaveChangesAsync(); + await _endPoint.Publish(new GroupInviteEvent + { + GroupId = groupId, + AggregateId = userId.ToString(), + OccurredAt = DateTime.UtcNow, + EventId = Guid.NewGuid(), + Ids = userIds, + OperatorId = userId, + UserId = userId + }); + } + + public async Task MakeGroupMemberAsync(int userId, int groupId ,GroupMemberRole? role) + { + var isExist = await _context.GroupMembers.AnyAsync(x => x.GroupId == groupId && x.UserId == userId); + if (isExist) return; + var groupMember = new GroupMember + { + UserId = userId, + Created = DateTime.UtcNow, + RoleEnum = role ?? GroupMemberRole.Normal, + GroupId = groupId + }; + _context.GroupMembers.Add(groupMember); + await _context.SaveChangesAsync(); + } + + public Task JoinGroupAsync(int userId, int groupId) + { + throw new NotImplementedException(); + } + + public async Task> GetGroupListAsync(int userId, int page, int limit, bool desc) + { + var query = _context.GroupMembers + .Where(x => x.UserId == userId) + .Select(s => s.Group); + if (desc) + { + query = query.OrderByDescending(x => x.Id); + } + var list = await query + .Skip((page - 1) * limit) + .Take(limit) + .ProjectTo(_mapper.ConfigurationProvider) + .ToListAsync(); + return list; + } + public async Task UpdateGroupConversationAsync(GroupUpdateConversationDto dto) + { + var group = await _context.Groups.FirstOrDefaultAsync(x => x.Id == dto.GroupId); + if (group is null) return; + group.LastMessage = dto.LastMessage; + group.MaxSequenceId = dto.MaxSequenceId; + group.LastSenderName = dto.LastSenderName; + group.LastUpdateTime = dto.LastUpdateTime; + _context.Groups.Update(group); + await _context.SaveChangesAsync(); + } + public async Task HandleGroupInviteAsync(int userid, HandleGroupInviteDto dto) + { + var user = _userService.GetUserInfoAsync(userid); + var inviteInfo = await _context.GroupInvites.FirstOrDefaultAsync(x => x.Id == dto.InviteId) + ?? throw new BaseException(CodeDefine.INVALID_ACTION); + if (inviteInfo.InvitedUser != userid) throw new BaseException(CodeDefine.AUTH_FAILED); + inviteInfo.StateEnum = dto.Action; + _context.GroupInvites.Update(inviteInfo); + await _context.SaveChangesAsync(); + await _endPoint.Publish(new GroupInviteActionUpdateEvent + { + Action = dto.Action, + AggregateId = userid.ToString(), + OccurredAt = DateTime.UtcNow, + EventId = Guid.NewGuid(), + GroupId = inviteInfo.GroupId, + InviteId = inviteInfo.Id, + InviteUserId = inviteInfo.InviteUser.Value, + OperatorId = userid, + UserId = userid + + }); + } + public async Task HandleGroupRequestAsync(int userid, HandleGroupRequestDto dto) + { + var user = _userService.GetUserInfoAsync(userid); + //判断请求存在 + var requestInfo = await _context.GroupRequests.FirstOrDefaultAsync(x => x.Id == dto.RequestId) + ?? throw new BaseException(CodeDefine.INVALID_ACTION); + //判断成员存在 + var memberInfo = await _context.GroupMembers.FirstOrDefaultAsync(x => x.UserId == userid) + ?? throw new BaseException(CodeDefine.NO_GROUP_PERMISSION); + //判断成员权限 + if (memberInfo.RoleEnum != GroupMemberRole.Master && memberInfo.RoleEnum != GroupMemberRole.Administrator) + throw new BaseException(CodeDefine.NO_GROUP_PERMISSION); + + requestInfo.StateEnum = dto.Action; + _context.GroupRequests.Update(requestInfo); + await _context.SaveChangesAsync(); + + await _endPoint.Publish(new GroupRequestUpdateEvent + { + Action = requestInfo.StateEnum, + AdminUserId = userid, + AggregateId = userid.ToString(), + OccurredAt = DateTime.UtcNow, + EventId = Guid.NewGuid(), + GroupId = requestInfo.GroupId, + OperatorId = userid, + UserId = requestInfo.UserId, + RequestId = requestInfo.Id + }); + } + public async Task MakeGroupRequestAsync(int userId, int? adminUserId, int groupId) + { + var requestInfo = await _context.GroupRequests + .FirstOrDefaultAsync(x => x.UserId == userId && x.GroupId == groupId); + if (requestInfo != null) return; + + var member = await _context.GroupMembers.FirstOrDefaultAsync( + x => x.UserId == adminUserId && x.GroupId == groupId); + var request = new GroupRequest + { + Created = DateTime.UtcNow, + Description = string.Empty, + GroupId = groupId, + UserId = userId, + StateEnum = GroupRequestState.Pending + }; + if(member != null && ( + member.RoleEnum == GroupMemberRole.Administrator || member.RoleEnum == GroupMemberRole.Master)) + { + request.StateEnum = GroupRequestState.Passed; + } + + _context.GroupRequests.Add(request); + await _context.SaveChangesAsync(); + + await _endPoint.Publish(new GroupRequestEvent + { + OccurredAt = DateTime.UtcNow, + Description = request.Description, + GroupId = request.GroupId, + Action = request.StateEnum, + UserId = userId, + AggregateId = userId.ToString(), + EventId = Guid.NewGuid(), + OperatorId = userId + }); + return; + } + } +} diff --git a/backend/IM_API/Services/JWTService.cs b/backend/IM_API/Services/JWTService.cs index 030beb4..aec98cd 100644 --- a/backend/IM_API/Services/JWTService.cs +++ b/backend/IM_API/Services/JWTService.cs @@ -1,55 +1,55 @@ -using IM_API.Interface.Services; -using Microsoft.IdentityModel.Tokens; -using System.IdentityModel.Tokens.Jwt; -using System.Security.Claims; -using System.Text; - -namespace IM_API.Services -{ - public class JWTService : IJWTService - { - private readonly IConfiguration _config; - private readonly string _key; - private readonly string _issuer; - private readonly string _audience; - private readonly int _accessMinutes; - - public JWTService(IConfiguration config) - { - _config = config; - _key = _config["Jwt:Key"]!; - _issuer = _config["Jwt:Issuer"]!; - _audience = _config["Jwt:Audience"]!; - _accessMinutes = int.Parse(_config["Jwt:AccessTokenMinutes"] ?? "15"); - } - - public string GenerateAccessToken(IEnumerable claims, DateTime expiresAt) - { - var keyBytes = Encoding.UTF8.GetBytes(_key); - var creds = new SigningCredentials(new SymmetricSecurityKey(keyBytes), SecurityAlgorithms.HmacSha256); - - var token = new JwtSecurityToken( - issuer: _issuer, - audience: _audience, - claims: claims, - expires: expiresAt, - signingCredentials: creds - ); - - return new JwtSecurityTokenHandler().WriteToken(token); - } - - public (string token, DateTime expiresAt) CreateAccessTokenForUser(int userId, string username, string role) - { - var expiresAt = DateTime.Now.AddMinutes(_accessMinutes); - var claims = new[] - { - new Claim(JwtRegisteredClaimNames.Sub, userId.ToString()), - new Claim(ClaimTypes.Name, username), - new Claim(ClaimTypes.Role, role) - }; - var token = GenerateAccessToken(claims, expiresAt); - return (token, expiresAt); - } - } -} +using IM_API.Interface.Services; +using Microsoft.IdentityModel.Tokens; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; + +namespace IM_API.Services +{ + public class JWTService : IJWTService + { + private readonly IConfiguration _config; + private readonly string _key; + private readonly string _issuer; + private readonly string _audience; + private readonly int _accessMinutes; + + public JWTService(IConfiguration config) + { + _config = config; + _key = _config["Jwt:Key"]!; + _issuer = _config["Jwt:Issuer"]!; + _audience = _config["Jwt:Audience"]!; + _accessMinutes = int.Parse(_config["Jwt:AccessTokenMinutes"] ?? "15"); + } + + public string GenerateAccessToken(IEnumerable claims, DateTime expiresAt) + { + var keyBytes = Encoding.UTF8.GetBytes(_key); + var creds = new SigningCredentials(new SymmetricSecurityKey(keyBytes), SecurityAlgorithms.HmacSha256); + + var token = new JwtSecurityToken( + issuer: _issuer, + audience: _audience, + claims: claims, + expires: expiresAt, + signingCredentials: creds + ); + + return new JwtSecurityTokenHandler().WriteToken(token); + } + + public (string token, DateTime expiresAt) CreateAccessTokenForUser(int userId, string username, string role) + { + var expiresAt = DateTime.Now.AddMinutes(_accessMinutes); + var claims = new[] + { + new Claim(JwtRegisteredClaimNames.Sub, userId.ToString()), + new Claim(ClaimTypes.Name, username), + new Claim(ClaimTypes.Role, role) + }; + var token = GenerateAccessToken(claims, expiresAt); + return (token, expiresAt); + } + } +} diff --git a/backend/IM_API/Services/MessageService.cs b/backend/IM_API/Services/MessageService.cs index 07b0528..2ca00e7 100644 --- a/backend/IM_API/Services/MessageService.cs +++ b/backend/IM_API/Services/MessageService.cs @@ -1,164 +1,164 @@ -using AutoMapper; -using IM_API.Application.Interfaces; -using IM_API.Domain.Events; -using IM_API.Dtos; -using IM_API.Dtos.Message; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using IM_API.VOs.Message; -using MassTransit; -using Microsoft.EntityFrameworkCore; -using StackExchange.Redis; -using System.Text.Json; -using System.Text.RegularExpressions; -using static MassTransit.Monitoring.Performance.BuiltInCounters; -using static Microsoft.EntityFrameworkCore.DbLoggerCategory; - -namespace IM_API.Services -{ - public class MessageService : IMessageSevice - { - private readonly ImContext _context; - private readonly ILogger _logger; - private readonly IMapper _mapper; - //废弃,此处已使用rabbitMQ替代 - //private readonly IEventBus _eventBus; - private readonly IPublishEndpoint _endpoint; - private readonly ISequenceIdService _sequenceIdService; - private readonly IUserService _userService; - public MessageService( - ImContext context, ILogger logger, IMapper mapper, - IPublishEndpoint publishEndpoint, ISequenceIdService sequenceIdService, - IUserService userService - ) - { - _context = context; - _logger = logger; - _mapper = mapper; - //_eventBus = eventBus; - _endpoint = publishEndpoint; - _sequenceIdService = sequenceIdService; - _userService = userService; - } - - public async Task> GetMessagesAsync(int userId,MessageQueryDto dto) - { - //获取会话信息,用于获取双方聊天的唯一标识streamkey - Conversation? conversation = await _context.Conversations.FirstOrDefaultAsync( - x => x.Id == dto.ConversationId && x.UserId == userId - ); - if (conversation is null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); - - var baseQuery = _context.Messages.Where(x => x.StreamKey == conversation.StreamKey); - List messages = new List(); - if (dto.Direction == 0) // Before: 找比锚点小的,按倒序排 - { - if (dto.Cursor.HasValue) - baseQuery = baseQuery.Where(m => m.SequenceId < dto.Cursor.Value); - - var list = await baseQuery - .OrderByDescending(m => m.SequenceId) // 最新消息在最前 - .Take(dto.Limit) - .Select(m => _mapper.Map(m)) - .ToListAsync(); - - messages = list.OrderBy(s => s.SequenceId).ToList(); - } - else // After: 找比锚点大的,按正序排(用于补洞或刷新) - { - // 如果 Cursor 为空且是 After,逻辑上说不通,通常直接返回空或报错 - if (!dto.Cursor.HasValue) return new List(); - - messages = await baseQuery - .Where(m => m.SequenceId > dto.Cursor.Value) - .OrderBy(m => m.SequenceId) // 按时间线正序 - .Take(dto.Limit) - .Select(m => _mapper.Map(m)) - .ToListAsync(); - } - //取发送者信息,用于前端展示 - if(messages.Count > 0) - { - var ids = messages - .Select(s => s.SenderId) - .Distinct() - .ToList(); - var userinfoList = await _userService.GetUserInfoListAsync(ids); - // 转为字典,提高查询效率 - var userDict = userinfoList.ToDictionary(x => x.Id, x => x); - - foreach (var item in messages) - { - if(userDict.TryGetValue(item.SenderId, out var user)) - { - item.SenderName = user.NickName; - item.SenderAvatar = user.Avatar ?? ""; - } - } - } - return messages; - } - - public Task GetUnreadCountAsync(int userId) - { - throw new NotImplementedException(); - } - - public Task> GetUnreadMessagesAsync(int userId) - { - throw new NotImplementedException(); - } - - public Task MarkAsReadAsync(int userId, long messageId) - { - throw new NotImplementedException(); - } - - public Task MarkConversationAsReadAsync(int userId, int? userBId, int? groupId) - { - throw new NotImplementedException(); - } - - public Task RecallMessageAsync(int userId, int messageId) - { - throw new NotImplementedException(); - } - - public async Task MakeMessageAsync(Message message) - { - _context.Messages.Add(message); - await _context.SaveChangesAsync(); - } - #region 发送群消息 - public async Task SendGroupMessageAsync(int senderId, int groupId, MessageBaseDto dto) - { - //判断群存在 - var isExist = await _context.Groups.AnyAsync(x => x.Id == groupId); - if (!isExist) throw new BaseException(CodeDefine.GROUP_NOT_FOUND); - //判断是否是群成员 - var isMember = await _context.GroupMembers.AnyAsync(x => x.GroupId == groupId && x.UserId == senderId); - if (!isMember) throw new BaseException(CodeDefine.NO_GROUP_PERMISSION); - var message = _mapper.Map(dto); - message.StreamKey = StreamKeyBuilder.Group(groupId); - message.SequenceId = await _sequenceIdService.GetNextSquenceIdAsync(message.StreamKey); - await _endpoint.Publish(_mapper.Map(message)); - return _mapper.Map(message); - - } - #endregion - #region 发送私聊消息 - public async Task SendPrivateMessageAsync(int senderId, int receiverId, MessageBaseDto dto) - { - bool isExist = await _context.Friends.AnyAsync(x => x.FriendId == receiverId); - if (!isExist) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); - var message = _mapper.Map(dto); - message.StreamKey = StreamKeyBuilder.Private(senderId, receiverId); - message.SequenceId = await _sequenceIdService.GetNextSquenceIdAsync(message.StreamKey); - await _endpoint.Publish(_mapper.Map(message)); - return _mapper.Map(message); - } - #endregion - } -} +using AutoMapper; +using IM_API.Application.Interfaces; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Dtos.Message; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using IM_API.VOs.Message; +using MassTransit; +using Microsoft.EntityFrameworkCore; +using StackExchange.Redis; +using System.Text.Json; +using System.Text.RegularExpressions; +using static MassTransit.Monitoring.Performance.BuiltInCounters; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; + +namespace IM_API.Services +{ + public class MessageService : IMessageSevice + { + private readonly ImContext _context; + private readonly ILogger _logger; + private readonly IMapper _mapper; + //废弃,此处已使用rabbitMQ替代 + //private readonly IEventBus _eventBus; + private readonly IPublishEndpoint _endpoint; + private readonly ISequenceIdService _sequenceIdService; + private readonly IUserService _userService; + public MessageService( + ImContext context, ILogger logger, IMapper mapper, + IPublishEndpoint publishEndpoint, ISequenceIdService sequenceIdService, + IUserService userService + ) + { + _context = context; + _logger = logger; + _mapper = mapper; + //_eventBus = eventBus; + _endpoint = publishEndpoint; + _sequenceIdService = sequenceIdService; + _userService = userService; + } + + public async Task> GetMessagesAsync(int userId,MessageQueryDto dto) + { + //获取会话信息,用于获取双方聊天的唯一标识streamkey + Conversation? conversation = await _context.Conversations.FirstOrDefaultAsync( + x => x.Id == dto.ConversationId && x.UserId == userId + ); + if (conversation is null) throw new BaseException(CodeDefine.CONVERSATION_NOT_FOUND); + + var baseQuery = _context.Messages.Where(x => x.StreamKey == conversation.StreamKey); + List messages = new List(); + if (dto.Direction == 0) // Before: 找比锚点小的,按倒序排 + { + if (dto.Cursor.HasValue) + baseQuery = baseQuery.Where(m => m.SequenceId < dto.Cursor.Value); + + var list = await baseQuery + .OrderByDescending(m => m.SequenceId) // 最新消息在最前 + .Take(dto.Limit) + .Select(m => _mapper.Map(m)) + .ToListAsync(); + + messages = list.OrderBy(s => s.SequenceId).ToList(); + } + else // After: 找比锚点大的,按正序排(用于补洞或刷新) + { + // 如果 Cursor 为空且是 After,逻辑上说不通,通常直接返回空或报错 + if (!dto.Cursor.HasValue) return new List(); + + messages = await baseQuery + .Where(m => m.SequenceId > dto.Cursor.Value) + .OrderBy(m => m.SequenceId) // 按时间线正序 + .Take(dto.Limit) + .Select(m => _mapper.Map(m)) + .ToListAsync(); + } + //取发送者信息,用于前端展示 + if(messages.Count > 0) + { + var ids = messages + .Select(s => s.SenderId) + .Distinct() + .ToList(); + var userinfoList = await _userService.GetUserInfoListAsync(ids); + // 转为字典,提高查询效率 + var userDict = userinfoList.ToDictionary(x => x.Id, x => x); + + foreach (var item in messages) + { + if(userDict.TryGetValue(item.SenderId, out var user)) + { + item.SenderName = user.NickName; + item.SenderAvatar = user.Avatar ?? ""; + } + } + } + return messages; + } + + public Task GetUnreadCountAsync(int userId) + { + throw new NotImplementedException(); + } + + public Task> GetUnreadMessagesAsync(int userId) + { + throw new NotImplementedException(); + } + + public Task MarkAsReadAsync(int userId, long messageId) + { + throw new NotImplementedException(); + } + + public Task MarkConversationAsReadAsync(int userId, int? userBId, int? groupId) + { + throw new NotImplementedException(); + } + + public Task RecallMessageAsync(int userId, int messageId) + { + throw new NotImplementedException(); + } + + public async Task MakeMessageAsync(Message message) + { + _context.Messages.Add(message); + await _context.SaveChangesAsync(); + } + #region 发送群消息 + public async Task SendGroupMessageAsync(int senderId, int groupId, MessageBaseDto dto) + { + //判断群存在 + var isExist = await _context.Groups.AnyAsync(x => x.Id == groupId); + if (!isExist) throw new BaseException(CodeDefine.GROUP_NOT_FOUND); + //判断是否是群成员 + var isMember = await _context.GroupMembers.AnyAsync(x => x.GroupId == groupId && x.UserId == senderId); + if (!isMember) throw new BaseException(CodeDefine.NO_GROUP_PERMISSION); + var message = _mapper.Map(dto); + message.StreamKey = StreamKeyBuilder.Group(groupId); + message.SequenceId = await _sequenceIdService.GetNextSquenceIdAsync(message.StreamKey); + await _endpoint.Publish(_mapper.Map(message)); + return _mapper.Map(message); + + } + #endregion + #region 发送私聊消息 + public async Task SendPrivateMessageAsync(int senderId, int receiverId, MessageBaseDto dto) + { + bool isExist = await _context.Friends.AnyAsync(x => x.FriendId == receiverId); + if (!isExist) throw new BaseException(CodeDefine.FRIEND_RELATION_NOT_FOUND); + var message = _mapper.Map(dto); + message.StreamKey = StreamKeyBuilder.Private(senderId, receiverId); + message.SequenceId = await _sequenceIdService.GetNextSquenceIdAsync(message.StreamKey); + await _endpoint.Publish(_mapper.Map(message)); + return _mapper.Map(message); + } + #endregion + } +} diff --git a/backend/IM_API/Services/RedisCacheService.cs b/backend/IM_API/Services/RedisCacheService.cs index b6bb9a9..383fdca 100644 --- a/backend/IM_API/Services/RedisCacheService.cs +++ b/backend/IM_API/Services/RedisCacheService.cs @@ -1,62 +1,62 @@ -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using Microsoft.Extensions.Caching.Distributed; -using System.Text.Json; - -namespace IM_API.Services -{ - public class RedisCacheService:ICacheService - { - private readonly IDistributedCache _cache; - public RedisCacheService(IDistributedCache cache) - { - _cache = cache; - } - - public async Task GetAsync(string key) - { - var valueBytes= await _cache.GetAsync(key); - if (valueBytes is null || valueBytes.Length == 0) return default; - return JsonSerializer.Deserialize(valueBytes); - } - - public async Task GetUserCacheAsync(string username) - { - var usernameKey = RedisKeys.GetUserinfoKeyByUsername(username); - var userid = await GetAsync(usernameKey); - if (userid is null) return default; - var key = RedisKeys.GetUserinfoKey(userid); - return await GetAsync(key); - } - - public async Task RemoveAsync(string key) => await _cache.RemoveAsync(key); - - public async Task RemoveUserCacheAsync(string username) - { - var usernameKey = RedisKeys.GetUserinfoKeyByUsername(username); - var userid = await GetAsync(usernameKey); - if (userid is null) return; - var key = RedisKeys.GetUserinfoKey(userid); - await RemoveAsync(key); - } - - public async Task SetAsync(string key, T value, TimeSpan? expiration = null) - { - var options = new DistributedCacheEntryOptions - { - AbsoluteExpirationRelativeToNow = expiration ?? TimeSpan.FromHours(1) - }; - var valueBytes = JsonSerializer.SerializeToUtf8Bytes(value); - await _cache.SetAsync(key, valueBytes, options); - } - - public async Task SetUserCacheAsync(User user) - { - var idKey = RedisKeys.GetUserinfoKey(user.Id.ToString()); - await SetAsync(idKey, user); - var usernameKey = RedisKeys.GetUserinfoKeyByUsername(user.Username); - await SetAsync(usernameKey, user.Id.ToString()); - } - } -} +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using Microsoft.Extensions.Caching.Distributed; +using System.Text.Json; + +namespace IM_API.Services +{ + public class RedisCacheService:ICacheService + { + private readonly IDistributedCache _cache; + public RedisCacheService(IDistributedCache cache) + { + _cache = cache; + } + + public async Task GetAsync(string key) + { + var valueBytes= await _cache.GetAsync(key); + if (valueBytes is null || valueBytes.Length == 0) return default; + return JsonSerializer.Deserialize(valueBytes); + } + + public async Task GetUserCacheAsync(string username) + { + var usernameKey = RedisKeys.GetUserinfoKeyByUsername(username); + var userid = await GetAsync(usernameKey); + if (userid is null) return default; + var key = RedisKeys.GetUserinfoKey(userid); + return await GetAsync(key); + } + + public async Task RemoveAsync(string key) => await _cache.RemoveAsync(key); + + public async Task RemoveUserCacheAsync(string username) + { + var usernameKey = RedisKeys.GetUserinfoKeyByUsername(username); + var userid = await GetAsync(usernameKey); + if (userid is null) return; + var key = RedisKeys.GetUserinfoKey(userid); + await RemoveAsync(key); + } + + public async Task SetAsync(string key, T value, TimeSpan? expiration = null) + { + var options = new DistributedCacheEntryOptions + { + AbsoluteExpirationRelativeToNow = expiration ?? TimeSpan.FromHours(1) + }; + var valueBytes = JsonSerializer.SerializeToUtf8Bytes(value); + await _cache.SetAsync(key, valueBytes, options); + } + + public async Task SetUserCacheAsync(User user) + { + var idKey = RedisKeys.GetUserinfoKey(user.Id.ToString()); + await SetAsync(idKey, user); + var usernameKey = RedisKeys.GetUserinfoKeyByUsername(user.Username); + await SetAsync(usernameKey, user.Id.ToString()); + } + } +} diff --git a/backend/IM_API/Services/RedisRefreshTokenService.cs b/backend/IM_API/Services/RedisRefreshTokenService.cs index 60b3a81..f5512af 100644 --- a/backend/IM_API/Services/RedisRefreshTokenService.cs +++ b/backend/IM_API/Services/RedisRefreshTokenService.cs @@ -1,66 +1,66 @@ -using IM_API.Interface.Services; -using Microsoft.AspNetCore.Connections; -using Newtonsoft.Json; -using StackExchange.Redis; -using System.Numerics; -using System.Security.Cryptography; -using System.Text.Json; - -namespace IM_API.Services -{ - public class RedisRefreshTokenService : IRefreshTokenService - { - private readonly ILogger _logger; - //redis数据库 - private readonly IDatabase _db; - private IConfiguration configuration; - //过期时长 - private readonly TimeSpan _refreshTTL; - public RedisRefreshTokenService(ILogger logger, IConnectionMultiplexer multiplexer, IConfiguration configuration) - { - _logger = logger; - _db = multiplexer.GetDatabase(); - this.configuration = configuration; - //设置refresh过期时间 - var days = int.Parse(this.configuration["Jwt:RefreshTokenDays"] ?? "30"); - _refreshTTL = TimeSpan.FromDays(days); - } - - private static string GenerateTokenStr() - { - var bytes = RandomNumberGenerator.GetBytes(32); - return Convert.ToBase64String(bytes); - } - - public async Task CreateRefreshTokenAsync(int userId, CancellationToken ct = default) - { - string token = GenerateTokenStr(); - var payload = new { UserId = userId,CreateAt = DateTime.Now}; - string json = JsonConvert.SerializeObject(payload); - //token写入redis - await _db.StringSetAsync(token,json,_refreshTTL); - return token; - } - - public async Task RevokeRefreshTokenAsync(string token, CancellationToken ct = default) - { - await _db.KeyDeleteAsync(token); - } - - public async Task<(bool ok, int userId)> ValidateRefreshTokenAsync(string token, CancellationToken ct = default) - { - var json = await _db.StringGetAsync(token); - if (json.IsNullOrEmpty) return (false,-1); - try - { - using var doc = JsonDocument.Parse(json.ToString()); - var userId = doc.RootElement.GetProperty("UserId").GetInt32(); - return (true,userId); - } - catch - { - return (false,-1); - } - } - } -} +using IM_API.Interface.Services; +using Microsoft.AspNetCore.Connections; +using Newtonsoft.Json; +using StackExchange.Redis; +using System.Numerics; +using System.Security.Cryptography; +using System.Text.Json; + +namespace IM_API.Services +{ + public class RedisRefreshTokenService : IRefreshTokenService + { + private readonly ILogger _logger; + //redis数据库 + private readonly IDatabase _db; + private IConfiguration configuration; + //过期时长 + private readonly TimeSpan _refreshTTL; + public RedisRefreshTokenService(ILogger logger, IConnectionMultiplexer multiplexer, IConfiguration configuration) + { + _logger = logger; + _db = multiplexer.GetDatabase(); + this.configuration = configuration; + //设置refresh过期时间 + var days = int.Parse(this.configuration["Jwt:RefreshTokenDays"] ?? "30"); + _refreshTTL = TimeSpan.FromDays(days); + } + + private static string GenerateTokenStr() + { + var bytes = RandomNumberGenerator.GetBytes(32); + return Convert.ToBase64String(bytes); + } + + public async Task CreateRefreshTokenAsync(int userId, CancellationToken ct = default) + { + string token = GenerateTokenStr(); + var payload = new { UserId = userId,CreateAt = DateTime.Now}; + string json = JsonConvert.SerializeObject(payload); + //token写入redis + await _db.StringSetAsync(token,json,_refreshTTL); + return token; + } + + public async Task RevokeRefreshTokenAsync(string token, CancellationToken ct = default) + { + await _db.KeyDeleteAsync(token); + } + + public async Task<(bool ok, int userId)> ValidateRefreshTokenAsync(string token, CancellationToken ct = default) + { + var json = await _db.StringGetAsync(token); + if (json.IsNullOrEmpty) return (false,-1); + try + { + using var doc = JsonDocument.Parse(json.ToString()); + var userId = doc.RootElement.GetProperty("UserId").GetInt32(); + return (true,userId); + } + catch + { + return (false,-1); + } + } + } +} diff --git a/backend/IM_API/Services/SequenceIdService.cs b/backend/IM_API/Services/SequenceIdService.cs index 3db52a6..f4229d8 100644 --- a/backend/IM_API/Services/SequenceIdService.cs +++ b/backend/IM_API/Services/SequenceIdService.cs @@ -1,46 +1,46 @@ -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using Microsoft.EntityFrameworkCore; -using RedLockNet; -using StackExchange.Redis; - -namespace IM_API.Services -{ - public class SequenceIdService : ISequenceIdService - { - private IDatabase _database; - private IDistributedLockFactory _lockFactory; - private ImContext _context; - public SequenceIdService(IConnectionMultiplexer connectionMultiplexer, - IDistributedLockFactory distributedLockFactory, ImContext imContext) - { - _database = connectionMultiplexer.GetDatabase(); - _lockFactory = distributedLockFactory; - _context = imContext; - } - public async Task GetNextSquenceIdAsync(string streamKey) - { - string key = RedisKeys.GetSequenceIdKey(streamKey); - string lockKey = RedisKeys.GetSequenceIdLockKey(streamKey); - var exists = await _database.KeyExistsAsync(key); - if (!exists) - { - using (var _lock = await _lockFactory.CreateLockAsync(lockKey, TimeSpan.FromSeconds(5))) - { - if (_lock.IsAcquired) - { - if(!await _database.KeyExistsAsync(key)) - { - var max = await _context.Messages - .Where(x => x.StreamKey == streamKey) - .MaxAsync(m => (long?)m.SequenceId) ?? 0; - await _database.StringSetAsync(key, max, TimeSpan.FromDays(7)); - } - } - } - } - return await _database.StringIncrementAsync(key); - } - } -} +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using Microsoft.EntityFrameworkCore; +using RedLockNet; +using StackExchange.Redis; + +namespace IM_API.Services +{ + public class SequenceIdService : ISequenceIdService + { + private IDatabase _database; + private IDistributedLockFactory _lockFactory; + private ImContext _context; + public SequenceIdService(IConnectionMultiplexer connectionMultiplexer, + IDistributedLockFactory distributedLockFactory, ImContext imContext) + { + _database = connectionMultiplexer.GetDatabase(); + _lockFactory = distributedLockFactory; + _context = imContext; + } + public async Task GetNextSquenceIdAsync(string streamKey) + { + string key = RedisKeys.GetSequenceIdKey(streamKey); + string lockKey = RedisKeys.GetSequenceIdLockKey(streamKey); + var exists = await _database.KeyExistsAsync(key); + if (!exists) + { + using (var _lock = await _lockFactory.CreateLockAsync(lockKey, TimeSpan.FromSeconds(5))) + { + if (_lock.IsAcquired) + { + if(!await _database.KeyExistsAsync(key)) + { + var max = await _context.Messages + .Where(x => x.StreamKey == streamKey) + .MaxAsync(m => (long?)m.SequenceId) ?? 0; + await _database.StringSetAsync(key, max, TimeSpan.FromDays(7)); + } + } + } + } + return await _database.StringIncrementAsync(key); + } + } +} diff --git a/backend/IM_API/Services/UserService.cs b/backend/IM_API/Services/UserService.cs index 1ffbe57..f0f86f1 100644 --- a/backend/IM_API/Services/UserService.cs +++ b/backend/IM_API/Services/UserService.cs @@ -1,129 +1,129 @@ -using AutoMapper; -using IM_API.Dtos.User; -using IM_API.Exceptions; -using IM_API.Interface.Services; -using IM_API.Models; -using IM_API.Tools; -using Microsoft.EntityFrameworkCore; -using StackExchange.Redis; -using System.Text.Json; - -namespace IM_API.Services -{ - public class UserService : IUserService - { - private readonly ImContext _context; - private readonly ILogger _logger; - private readonly IMapper _mapper; - private readonly ICacheService _cacheService; - private readonly IDatabase _redis; - public UserService( - ImContext imContext,ILogger logger, - IMapper mapper, ICacheService cacheService, IConnectionMultiplexer connectionMultiplexer) - { - this._context = imContext; - this._logger = logger; - this._mapper = mapper; - _cacheService = cacheService; - _redis = connectionMultiplexer.GetDatabase(); - } - #region 获取用户信息 - public async Task GetUserInfoAsync(int userId) - { - //查询redis缓存,如果存在直接返回不走查库逻辑 - var key = RedisKeys.GetUserinfoKey(userId.ToString()); - var userinfoCache = await _cacheService.GetAsync(key); - if (userinfoCache != null) return _mapper.Map(userinfoCache); - //无缓存查库 - var user = await _context.Users - .FirstOrDefaultAsync(x => x.Id == userId); - if (user == null) - { - throw new BaseException(CodeDefine.USER_NOT_FOUND); - } - await _cacheService.SetUserCacheAsync(user); - return _mapper.Map(user); - } - #endregion - #region 通过用户名获取用户信息 - public async Task GetUserInfoByUsernameAsync(string username) - { - var userinfo = await _cacheService.GetUserCacheAsync(username); - if (userinfo != null) return _mapper.Map(userinfo); - var user = await _context.Users.FirstOrDefaultAsync(x => x.Username == username); - if (user == null) - { - throw new BaseException(CodeDefine.USER_NOT_FOUND); - } - await _cacheService.SetUserCacheAsync(user); - return _mapper.Map(user); - } - #endregion - #region 重置用户密码 - public async Task ResetPasswordAsync(int userId, string oldPassword, string password) - { - var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == userId); - if (user is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); - //验证原密码 - if (user.Password != oldPassword) throw new BaseException(CodeDefine.PASSWORD_ERROR); - user.Password = password; - await _context.SaveChangesAsync(); - return true; - } - #endregion - #region 更新用户在线状态 - public async Task UpdateOlineStatusAsync(int userId,UserOnlineStatus onlineStatus) - { - var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == userId); - if (user is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); - user.OnlineStatusEnum = onlineStatus; - await _context.SaveChangesAsync(); - return true; - } - #endregion - #region 更新用户信息 - public async Task UpdateUserAsync(int userId,UpdateUserDto dto) - { - var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == userId); - if (user is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); - _mapper.Map(dto,user); - await _context.SaveChangesAsync(); - await _cacheService.SetUserCacheAsync(user); - return _mapper.Map(user); - } - #endregion - #region 批量获取用户信息 - public async Task> GetUserInfoListAsync(List ids) - { - //读取缓存中存在的用户,存在直接添加到结果列表 - var idKeyArr = ids.Select(s => (RedisKey)RedisKeys.GetUserinfoKey(s.ToString())).ToArray(); - var values = await _redis.StringGetAsync(idKeyArr); - List results = []; - List missingIds = []; - for(int i = 0; i < ids.Count; i++) - { - if (values[i].HasValue) - { - results.Add(JsonSerializer.Deserialize(values[i])); - } - else - { - missingIds.Add(ids[i]); - } - } - //如果存在没有缓存的用户则进行查库 - if (missingIds.Any()) - { - var dbUsers = await _context.Users - .Where(x => ids.Contains(x.Id)).ToListAsync(); - - results.AddRange(dbUsers); - - var setTasks = dbUsers.Select(s => _cacheService.SetUserCacheAsync(s)).ToList(); - await Task.WhenAll(setTasks); - } - return _mapper.Map>(results); - } - #endregion - } -} +using AutoMapper; +using IM_API.Dtos.User; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; +using Microsoft.EntityFrameworkCore; +using StackExchange.Redis; +using System.Text.Json; + +namespace IM_API.Services +{ + public class UserService : IUserService + { + private readonly ImContext _context; + private readonly ILogger _logger; + private readonly IMapper _mapper; + private readonly ICacheService _cacheService; + private readonly IDatabase _redis; + public UserService( + ImContext imContext,ILogger logger, + IMapper mapper, ICacheService cacheService, IConnectionMultiplexer connectionMultiplexer) + { + this._context = imContext; + this._logger = logger; + this._mapper = mapper; + _cacheService = cacheService; + _redis = connectionMultiplexer.GetDatabase(); + } + #region 获取用户信息 + public async Task GetUserInfoAsync(int userId) + { + //查询redis缓存,如果存在直接返回不走查库逻辑 + var key = RedisKeys.GetUserinfoKey(userId.ToString()); + var userinfoCache = await _cacheService.GetAsync(key); + if (userinfoCache != null) return _mapper.Map(userinfoCache); + //无缓存查库 + var user = await _context.Users + .FirstOrDefaultAsync(x => x.Id == userId); + if (user == null) + { + throw new BaseException(CodeDefine.USER_NOT_FOUND); + } + await _cacheService.SetUserCacheAsync(user); + return _mapper.Map(user); + } + #endregion + #region 通过用户名获取用户信息 + public async Task GetUserInfoByUsernameAsync(string username) + { + var userinfo = await _cacheService.GetUserCacheAsync(username); + if (userinfo != null) return _mapper.Map(userinfo); + var user = await _context.Users.FirstOrDefaultAsync(x => x.Username == username); + if (user == null) + { + throw new BaseException(CodeDefine.USER_NOT_FOUND); + } + await _cacheService.SetUserCacheAsync(user); + return _mapper.Map(user); + } + #endregion + #region 重置用户密码 + public async Task ResetPasswordAsync(int userId, string oldPassword, string password) + { + var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == userId); + if (user is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); + //验证原密码 + if (user.Password != oldPassword) throw new BaseException(CodeDefine.PASSWORD_ERROR); + user.Password = password; + await _context.SaveChangesAsync(); + return true; + } + #endregion + #region 更新用户在线状态 + public async Task UpdateOlineStatusAsync(int userId,UserOnlineStatus onlineStatus) + { + var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == userId); + if (user is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); + user.OnlineStatusEnum = onlineStatus; + await _context.SaveChangesAsync(); + return true; + } + #endregion + #region 更新用户信息 + public async Task UpdateUserAsync(int userId,UpdateUserDto dto) + { + var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == userId); + if (user is null) throw new BaseException(CodeDefine.USER_NOT_FOUND); + _mapper.Map(dto,user); + await _context.SaveChangesAsync(); + await _cacheService.SetUserCacheAsync(user); + return _mapper.Map(user); + } + #endregion + #region 批量获取用户信息 + public async Task> GetUserInfoListAsync(List ids) + { + //读取缓存中存在的用户,存在直接添加到结果列表 + var idKeyArr = ids.Select(s => (RedisKey)RedisKeys.GetUserinfoKey(s.ToString())).ToArray(); + var values = await _redis.StringGetAsync(idKeyArr); + List results = []; + List missingIds = []; + for(int i = 0; i < ids.Count; i++) + { + if (values[i].HasValue) + { + results.Add(JsonSerializer.Deserialize(values[i])); + } + else + { + missingIds.Add(ids[i]); + } + } + //如果存在没有缓存的用户则进行查库 + if (missingIds.Any()) + { + var dbUsers = await _context.Users + .Where(x => ids.Contains(x.Id)).ToListAsync(); + + results.AddRange(dbUsers); + + var setTasks = dbUsers.Select(s => _cacheService.SetUserCacheAsync(s)).ToList(); + await Task.WhenAll(setTasks); + } + return _mapper.Map>(results); + } + #endregion + } +} diff --git a/backend/IM_API/Tools/CodeDefine.cs b/backend/IM_API/Tools/CodeDefine.cs index e62989e..cf0e8af 100644 --- a/backend/IM_API/Tools/CodeDefine.cs +++ b/backend/IM_API/Tools/CodeDefine.cs @@ -1,109 +1,109 @@ -namespace IM_API.Tools -{ - public class CodeDefine - { - public int Code { get; set; } - public string Message { get; set; } - - public CodeDefine(int code, string message) - { - Code = code; - Message = message; - } - // 3.1 成功类 - /// 成功响应 - public static CodeDefine SUCCESS = new CodeDefine(0, "成功"); - - // 3.2 系统级错误(1000 ~ 1999) - /// 未知异常 - public static CodeDefine SYSTEM_ERROR = new CodeDefine(1000, "系统错误"); - /// 服务器维护中或宕机 - public static CodeDefine SERVICE_UNAVAILABLE = new CodeDefine(1001, "服务不可用"); - /// 后端超时 - public static CodeDefine REQUEST_TIMEOUT = new CodeDefine(1002, "请求超时"); - /// 缺少或参数不合法 - public static CodeDefine PARAMETER_ERROR = new CodeDefine(1003, "参数错误"); - /// 数据库读写失败 - public static CodeDefine DATABASE_ERROR = new CodeDefine(1004, "数据库错误"); - /// 无权限访问 - public static CodeDefine PERMISSION_DENIED = new CodeDefine(1005, "权限不足"); - /// Token 无效/过期 - public static CodeDefine AUTH_FAILED = new CodeDefine(1006, "认证失败"); - - // 3.3 用户相关错误(2000 ~ 2099) - /// 查询不到用户 - public static CodeDefine USER_NOT_FOUND = new CodeDefine(2000, "用户不存在"); - /// 注册时用户已存在 - public static CodeDefine USER_ALREADY_EXISTS = new CodeDefine(2001, "用户已存在"); - /// 登录密码错误 - public static CodeDefine PASSWORD_ERROR = new CodeDefine(2002, "密码错误"); - /// 被管理员封禁 - public static CodeDefine USER_DISABLED = new CodeDefine(2003, "用户被禁用"); - /// 需重新登录 - public static CodeDefine LOGIN_EXPIRED = new CodeDefine(2004, "登录过期"); - - // 3.4 好友相关错误(2100 ~ 2199) - /// 重复申请 - public static CodeDefine FRIEND_REQUEST_EXISTS = new CodeDefine(2100, "好友申请已存在"); - /// 不是好友 - public static CodeDefine FRIEND_RELATION_NOT_FOUND = new CodeDefine(2101, "好友关系不存在"); - /// 重复添加 - public static CodeDefine ALREADY_FRIENDS = new CodeDefine(2102, "已经是好友"); - /// 被对方拒绝 - public static CodeDefine FRIEND_REQUEST_REJECTED = new CodeDefine(2103, "好友请求被拒绝"); - /// 被对方拉黑 - public static CodeDefine CANNOT_ADD_FRIEND = new CodeDefine(2104, "无法申请加好友"); - /// 好友请求不存在 - public static CodeDefine FRIEND_REQUEST_NOT_FOUND = new CodeDefine(2105, "好友请求不存在"); - /// 处理好友请求操作无效 - public static CodeDefine INVALID_ACTION = new CodeDefine(2106, "处理好友请求操作无效"); - - // 3.5 群聊相关错误(2200 ~ 2299) - /// 查询不到群 - public static CodeDefine GROUP_NOT_FOUND = new CodeDefine(2200, "群不存在"); - /// 不能重复加入 - public static CodeDefine ALREADY_IN_GROUP = new CodeDefine(2201, "已在群中"); - /// 超出限制 - public static CodeDefine GROUP_FULL = new CodeDefine(2202, "群成员已满"); - /// 需要邀请/验证 - public static CodeDefine NO_GROUP_PERMISSION = new CodeDefine(2203, "无加群权限"); - /// 邀请链接过期 - public static CodeDefine GROUP_INVITE_EXPIRED = new CodeDefine(2204, "群邀请已过期"); - - // 3.6 消息相关错误(2300 ~ 2399) - /// 发送时异常 - public static CodeDefine MESSAGE_SEND_FAILED = new CodeDefine(2300, "消息发送失败"); - /// 查询不到消息 - public static CodeDefine MESSAGE_NOT_FOUND = new CodeDefine(2301, "消息不存在"); - /// 超过时间限制 - public static CodeDefine MESSAGE_RECALL_FAILED = new CodeDefine(2302, "消息撤回失败"); - /// message_type 不合法 - public static CodeDefine UNSUPPORTED_MESSAGE_TYPE = new CodeDefine(2303, "不支持的消息类型"); - - // 3.7 文件相关错误(2400 ~ 2499) - /// 存储服务错误 - public static CodeDefine FILE_UPLOAD_FAILED = new CodeDefine(2400, "文件上传失败"); - /// 下载时未找到 - public static CodeDefine FILE_NOT_FOUND = new CodeDefine(2401, "文件不存在"); - /// 超过配置限制 - public static CodeDefine FILE_TOO_LARGE = new CodeDefine(2402, "文件大小超限"); - /// 格式不允许 - public static CodeDefine FILE_TYPE_NOT_SUPPORTED = new CodeDefine(2403, "文件类型不支持"); - - // 3.8 管理后台相关错误(3000 ~ 3099) - /// 账号错误 - public static CodeDefine ADMIN_NOT_FOUND = new CodeDefine(3000, "管理员不存在"); - /// 后台登录失败 - public static CodeDefine ADMIN_PASSWORD_ERROR = new CodeDefine(3001, "密码错误"); - /// 角色未找到 - public static CodeDefine ROLE_NOT_FOUND = new CodeDefine(3002, "角色不存在"); - /// 无操作权限 - public static CodeDefine ADMIN_PERMISSION_DENIED = new CodeDefine(3003, "权限不足"); - /// 后台日志写入失败 - public static CodeDefine OPERATION_LOG_FAILED = new CodeDefine(3004, "操作记录失败"); - - // 3.9 会话相关错误(3100 ~ 3199) - /// 发送时异常 - public static CodeDefine CONVERSATION_NOT_FOUND = new CodeDefine(3100, "会话不存在"); - } -} +namespace IM_API.Tools +{ + public class CodeDefine + { + public int Code { get; set; } + public string Message { get; set; } + + public CodeDefine(int code, string message) + { + Code = code; + Message = message; + } + // 3.1 成功类 + /// 成功响应 + public static CodeDefine SUCCESS = new CodeDefine(0, "成功"); + + // 3.2 系统级错误(1000 ~ 1999) + /// 未知异常 + public static CodeDefine SYSTEM_ERROR = new CodeDefine(1000, "系统错误"); + /// 服务器维护中或宕机 + public static CodeDefine SERVICE_UNAVAILABLE = new CodeDefine(1001, "服务不可用"); + /// 后端超时 + public static CodeDefine REQUEST_TIMEOUT = new CodeDefine(1002, "请求超时"); + /// 缺少或参数不合法 + public static CodeDefine PARAMETER_ERROR = new CodeDefine(1003, "参数错误"); + /// 数据库读写失败 + public static CodeDefine DATABASE_ERROR = new CodeDefine(1004, "数据库错误"); + /// 无权限访问 + public static CodeDefine PERMISSION_DENIED = new CodeDefine(1005, "权限不足"); + /// Token 无效/过期 + public static CodeDefine AUTH_FAILED = new CodeDefine(1006, "认证失败"); + + // 3.3 用户相关错误(2000 ~ 2099) + /// 查询不到用户 + public static CodeDefine USER_NOT_FOUND = new CodeDefine(2000, "用户不存在"); + /// 注册时用户已存在 + public static CodeDefine USER_ALREADY_EXISTS = new CodeDefine(2001, "用户已存在"); + /// 登录密码错误 + public static CodeDefine PASSWORD_ERROR = new CodeDefine(2002, "密码错误"); + /// 被管理员封禁 + public static CodeDefine USER_DISABLED = new CodeDefine(2003, "用户被禁用"); + /// 需重新登录 + public static CodeDefine LOGIN_EXPIRED = new CodeDefine(2004, "登录过期"); + + // 3.4 好友相关错误(2100 ~ 2199) + /// 重复申请 + public static CodeDefine FRIEND_REQUEST_EXISTS = new CodeDefine(2100, "好友申请已存在"); + /// 不是好友 + public static CodeDefine FRIEND_RELATION_NOT_FOUND = new CodeDefine(2101, "好友关系不存在"); + /// 重复添加 + public static CodeDefine ALREADY_FRIENDS = new CodeDefine(2102, "已经是好友"); + /// 被对方拒绝 + public static CodeDefine FRIEND_REQUEST_REJECTED = new CodeDefine(2103, "好友请求被拒绝"); + /// 被对方拉黑 + public static CodeDefine CANNOT_ADD_FRIEND = new CodeDefine(2104, "无法申请加好友"); + /// 好友请求不存在 + public static CodeDefine FRIEND_REQUEST_NOT_FOUND = new CodeDefine(2105, "好友请求不存在"); + /// 处理好友请求操作无效 + public static CodeDefine INVALID_ACTION = new CodeDefine(2106, "处理好友请求操作无效"); + + // 3.5 群聊相关错误(2200 ~ 2299) + /// 查询不到群 + public static CodeDefine GROUP_NOT_FOUND = new CodeDefine(2200, "群不存在"); + /// 不能重复加入 + public static CodeDefine ALREADY_IN_GROUP = new CodeDefine(2201, "已在群中"); + /// 超出限制 + public static CodeDefine GROUP_FULL = new CodeDefine(2202, "群成员已满"); + /// 需要邀请/验证 + public static CodeDefine NO_GROUP_PERMISSION = new CodeDefine(2203, "无加群权限"); + /// 邀请链接过期 + public static CodeDefine GROUP_INVITE_EXPIRED = new CodeDefine(2204, "群邀请已过期"); + + // 3.6 消息相关错误(2300 ~ 2399) + /// 发送时异常 + public static CodeDefine MESSAGE_SEND_FAILED = new CodeDefine(2300, "消息发送失败"); + /// 查询不到消息 + public static CodeDefine MESSAGE_NOT_FOUND = new CodeDefine(2301, "消息不存在"); + /// 超过时间限制 + public static CodeDefine MESSAGE_RECALL_FAILED = new CodeDefine(2302, "消息撤回失败"); + /// message_type 不合法 + public static CodeDefine UNSUPPORTED_MESSAGE_TYPE = new CodeDefine(2303, "不支持的消息类型"); + + // 3.7 文件相关错误(2400 ~ 2499) + /// 存储服务错误 + public static CodeDefine FILE_UPLOAD_FAILED = new CodeDefine(2400, "文件上传失败"); + /// 下载时未找到 + public static CodeDefine FILE_NOT_FOUND = new CodeDefine(2401, "文件不存在"); + /// 超过配置限制 + public static CodeDefine FILE_TOO_LARGE = new CodeDefine(2402, "文件大小超限"); + /// 格式不允许 + public static CodeDefine FILE_TYPE_NOT_SUPPORTED = new CodeDefine(2403, "文件类型不支持"); + + // 3.8 管理后台相关错误(3000 ~ 3099) + /// 账号错误 + public static CodeDefine ADMIN_NOT_FOUND = new CodeDefine(3000, "管理员不存在"); + /// 后台登录失败 + public static CodeDefine ADMIN_PASSWORD_ERROR = new CodeDefine(3001, "密码错误"); + /// 角色未找到 + public static CodeDefine ROLE_NOT_FOUND = new CodeDefine(3002, "角色不存在"); + /// 无操作权限 + public static CodeDefine ADMIN_PERMISSION_DENIED = new CodeDefine(3003, "权限不足"); + /// 后台日志写入失败 + public static CodeDefine OPERATION_LOG_FAILED = new CodeDefine(3004, "操作记录失败"); + + // 3.9 会话相关错误(3100 ~ 3199) + /// 发送时异常 + public static CodeDefine CONVERSATION_NOT_FOUND = new CodeDefine(3100, "会话不存在"); + } +} diff --git a/backend/IM_API/Tools/PasswordHasher.cs b/backend/IM_API/Tools/PasswordHasher.cs index 3431848..07eb5d8 100644 --- a/backend/IM_API/Tools/PasswordHasher.cs +++ b/backend/IM_API/Tools/PasswordHasher.cs @@ -1,21 +1,21 @@ -using System.Security.Cryptography; -using System.Text; - -namespace IM_API.Tools -{ - public static class PasswordHasher - { - public static string HashPassword(string password) - { - using var sha256 = SHA256.Create(); - var hashedBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(password)); - return Convert.ToBase64String(hashedBytes); - } - - public static bool VerifyPassword(string password, string hashedPassword) - { - var hashedInput = HashPassword(password); - return hashedInput == hashedPassword; - } - } -} +using System.Security.Cryptography; +using System.Text; + +namespace IM_API.Tools +{ + public static class PasswordHasher + { + public static string HashPassword(string password) + { + using var sha256 = SHA256.Create(); + var hashedBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(password)); + return Convert.ToBase64String(hashedBytes); + } + + public static bool VerifyPassword(string password, string hashedPassword) + { + var hashedInput = HashPassword(password); + return hashedInput == hashedPassword; + } + } +} diff --git a/backend/IM_API/Tools/RedisKeys.cs b/backend/IM_API/Tools/RedisKeys.cs index d7949be..b218d1d 100644 --- a/backend/IM_API/Tools/RedisKeys.cs +++ b/backend/IM_API/Tools/RedisKeys.cs @@ -1,11 +1,11 @@ -namespace IM_API.Tools -{ - public static class RedisKeys - { - public static string GetUserinfoKey(string userId) => $"user::uinfo::{userId}"; - public static string GetUserinfoKeyByUsername(string username) => $"user::uinfobyid::{username}"; - public static string GetSequenceIdKey(string streamKey) => $"chat::seq::{streamKey}"; - public static string GetSequenceIdLockKey(string streamKey) => $"lock::seq::{streamKey}"; - public static string GetConnectionIdKey(string userId) => $"signalr::user::con::{userId}"; - } -} +namespace IM_API.Tools +{ + public static class RedisKeys + { + public static string GetUserinfoKey(string userId) => $"user::uinfo::{userId}"; + public static string GetUserinfoKeyByUsername(string username) => $"user::uinfobyid::{username}"; + public static string GetSequenceIdKey(string streamKey) => $"chat::seq::{streamKey}"; + public static string GetSequenceIdLockKey(string streamKey) => $"lock::seq::{streamKey}"; + public static string GetConnectionIdKey(string userId) => $"signalr::user::con::{userId}"; + } +} diff --git a/backend/IM_API/Tools/SignalRMethodDefine.cs b/backend/IM_API/Tools/SignalRMethodDefine.cs index 829ec14..85e14e1 100644 --- a/backend/IM_API/Tools/SignalRMethodDefine.cs +++ b/backend/IM_API/Tools/SignalRMethodDefine.cs @@ -1,7 +1,7 @@ -namespace IM_API.Tools -{ - public class SignalRMethodDefine - { - public static string ReceiveMessage = "ReceiveMessage"; - } -} +namespace IM_API.Tools +{ + public class SignalRMethodDefine + { + public static string ReceiveMessage = "ReceiveMessage"; + } +} diff --git a/backend/IM_API/Tools/StreamKeyBuilder.cs b/backend/IM_API/Tools/StreamKeyBuilder.cs index c7eee60..a14f43a 100644 --- a/backend/IM_API/Tools/StreamKeyBuilder.cs +++ b/backend/IM_API/Tools/StreamKeyBuilder.cs @@ -1,17 +1,17 @@ -namespace IM_API.Tools -{ - public static class StreamKeyBuilder - { - public static string Private(long a, long b) - { - if (a <= 0 || b <= 0) throw new ArgumentException(); - return $"p:{(a < b ? $"{a}_{b}" : $"{b}_{a}")}"; - } - - public static string Group(long groupId) - { - if (groupId <= 0) throw new ArgumentException(); - return $"g:{groupId}"; - } - } -} +namespace IM_API.Tools +{ + public static class StreamKeyBuilder + { + public static string Private(long a, long b) + { + if (a <= 0 || b <= 0) throw new ArgumentException(); + return $"p:{(a < b ? $"{a}_{b}" : $"{b}_{a}")}"; + } + + public static string Group(long groupId) + { + if (groupId <= 0) throw new ArgumentException(); + return $"g:{groupId}"; + } + } +} diff --git a/backend/IM_API/Tools/UTCConverter.cs b/backend/IM_API/Tools/UTCConverter.cs index bc422cd..06e374c 100644 --- a/backend/IM_API/Tools/UTCConverter.cs +++ b/backend/IM_API/Tools/UTCConverter.cs @@ -1,18 +1,18 @@ -using System.Text.Json; - -namespace IM_API.Tools -{ - public class UtcDateTimeConverter : System.Text.Json.Serialization.JsonConverter - { - public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) - => reader.GetDateTime(); - - public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) - { - // 如果 Kind 已经是 Utc,直接输出。 - // 如果不是,先 SpecifyKind 再输出,确保不会发生时区偏移计算 - var utcDate = value.Kind == DateTimeKind.Utc ? value : DateTime.SpecifyKind(value, DateTimeKind.Utc); - writer.WriteStringValue(utcDate.ToString("yyyy-MM-ddTHH:mm:ssZ")); - } - } -} +using System.Text.Json; + +namespace IM_API.Tools +{ + public class UtcDateTimeConverter : System.Text.Json.Serialization.JsonConverter + { + public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + => reader.GetDateTime(); + + public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options) + { + // 如果 Kind 已经是 Utc,直接输出。 + // 如果不是,先 SpecifyKind 再输出,确保不会发生时区偏移计算 + var utcDate = value.Kind == DateTimeKind.Utc ? value : DateTime.SpecifyKind(value, DateTimeKind.Utc); + writer.WriteStringValue(utcDate.ToString("yyyy-MM-ddTHH:mm:ssZ")); + } + } +} diff --git a/backend/IM_API/VOs/Auth/LoginVo.cs b/backend/IM_API/VOs/Auth/LoginVo.cs index 3e2c524..5de5edc 100644 --- a/backend/IM_API/VOs/Auth/LoginVo.cs +++ b/backend/IM_API/VOs/Auth/LoginVo.cs @@ -1,18 +1,18 @@ -using IM_API.Dtos.User; - -namespace IM_API.VOs.Auth -{ - public class LoginVo - { - public UserInfoDto userInfo { get; set; } - public string Token { get; set; } - public string RefreshToken { get; set; } - public DateTimeOffset ExpireAt { get; set; } - public LoginVo(UserInfoDto userInfo,string token, string refreshToken, DateTime expireAt) { - this.userInfo = userInfo; - Token = token; - RefreshToken = refreshToken; - ExpireAt = expireAt; - } - } -} +using IM_API.Dtos.User; + +namespace IM_API.VOs.Auth +{ + public class LoginVo + { + public UserInfoDto userInfo { get; set; } + public string Token { get; set; } + public string RefreshToken { get; set; } + public DateTimeOffset ExpireAt { get; set; } + public LoginVo(UserInfoDto userInfo,string token, string refreshToken, DateTime expireAt) { + this.userInfo = userInfo; + Token = token; + RefreshToken = refreshToken; + ExpireAt = expireAt; + } + } +} diff --git a/backend/IM_API/VOs/Conversation/ConversationVo.cs b/backend/IM_API/VOs/Conversation/ConversationVo.cs index 5d98a82..6653941 100644 --- a/backend/IM_API/VOs/Conversation/ConversationVo.cs +++ b/backend/IM_API/VOs/Conversation/ConversationVo.cs @@ -1,53 +1,53 @@ -using IM_API.Dtos; -using IM_API.Models; -using IM_API.VOs.Message; - -namespace IM_API.VOs.Conversation -{ - public class ConversationVo - { - public int Id { get; set; } - - /// - /// 用户 - /// - public int UserId { get; set; } - - /// - /// 对方ID(群聊为群聊ID,单聊为单聊ID) - /// - public int TargetId { get; set; } - - /// - /// 最后一条未读消息ID - /// - public long? LastSequenceId { get; set; } - - /// - /// 未读消息数 - /// - public int UnreadCount { get; set; } - - public ChatType ChatType { get; set; } - - - /// - /// 最后一条最新消息 - /// - public string LastMessage { get; set; } = null!; - /// - /// 最后一条消息时间 - /// - public DateTimeOffset? DateTime { get; set; } = null; - - /// - /// 对方昵称 - /// - public string TargetName { get; set; } - /// - /// 对方头像 - /// - public string? TargetAvatar { get; set; } - - } -} +using IM_API.Dtos; +using IM_API.Models; +using IM_API.VOs.Message; + +namespace IM_API.VOs.Conversation +{ + public class ConversationVo + { + public int Id { get; set; } + + /// + /// 用户 + /// + public int UserId { get; set; } + + /// + /// 对方ID(群聊为群聊ID,单聊为单聊ID) + /// + public int TargetId { get; set; } + + /// + /// 最后一条未读消息ID + /// + public long? LastSequenceId { get; set; } + + /// + /// 未读消息数 + /// + public int UnreadCount { get; set; } + + public ChatType ChatType { get; set; } + + + /// + /// 最后一条最新消息 + /// + public string LastMessage { get; set; } = null!; + /// + /// 最后一条消息时间 + /// + public DateTimeOffset? DateTime { get; set; } = null; + + /// + /// 对方昵称 + /// + public string TargetName { get; set; } + /// + /// 对方头像 + /// + public string? TargetAvatar { get; set; } + + } +} diff --git a/backend/IM_API/VOs/Group/GroupInviteActionUpdateVo.cs b/backend/IM_API/VOs/Group/GroupInviteActionUpdateVo.cs index 23fdd23..780431e 100644 --- a/backend/IM_API/VOs/Group/GroupInviteActionUpdateVo.cs +++ b/backend/IM_API/VOs/Group/GroupInviteActionUpdateVo.cs @@ -1,13 +1,13 @@ -using IM_API.Models; - -namespace IM_API.VOs.Group -{ - public class GroupInviteActionUpdateVo - { - public int GroupId { get; set; } - public int InviteUserId { get; set; } - public int InvitedUserId { get; set; } - public int InviteId { get; set; } - public GroupInviteState Action { get; set; } - } -} +using IM_API.Models; + +namespace IM_API.VOs.Group +{ + public class GroupInviteActionUpdateVo + { + public int GroupId { get; set; } + public int InviteUserId { get; set; } + public int InvitedUserId { get; set; } + public int InviteId { get; set; } + public GroupInviteState Action { get; set; } + } +} diff --git a/backend/IM_API/VOs/Group/GroupInviteVo.cs b/backend/IM_API/VOs/Group/GroupInviteVo.cs index f56d3cd..33a6ccd 100644 --- a/backend/IM_API/VOs/Group/GroupInviteVo.cs +++ b/backend/IM_API/VOs/Group/GroupInviteVo.cs @@ -1,9 +1,9 @@ -namespace IM_API.VOs.Group -{ - public class GroupInviteVo - { - public int GroupId { get; set; } - public int UserId { get; set; } - - } -} +namespace IM_API.VOs.Group +{ + public class GroupInviteVo + { + public int GroupId { get; set; } + public int UserId { get; set; } + + } +} diff --git a/backend/IM_API/VOs/Group/GroupJoinVo.cs b/backend/IM_API/VOs/Group/GroupJoinVo.cs index c6b85a4..69c4b37 100644 --- a/backend/IM_API/VOs/Group/GroupJoinVo.cs +++ b/backend/IM_API/VOs/Group/GroupJoinVo.cs @@ -1,8 +1,8 @@ -namespace IM_API.VOs.Group -{ - public class GroupJoinVo - { - public int UserId { get; set; } - public int GroupId { get; set; } - } -} +namespace IM_API.VOs.Group +{ + public class GroupJoinVo + { + public int UserId { get; set; } + public int GroupId { get; set; } + } +} diff --git a/backend/IM_API/VOs/Group/GroupRequestUpdateVo.cs b/backend/IM_API/VOs/Group/GroupRequestUpdateVo.cs index 337f6e5..89c3bef 100644 --- a/backend/IM_API/VOs/Group/GroupRequestUpdateVo.cs +++ b/backend/IM_API/VOs/Group/GroupRequestUpdateVo.cs @@ -1,9 +1,9 @@ -namespace IM_API.VOs.Group -{ - public class GroupRequestUpdateVo - { - public int RequestId { get; set; } - public int GroupId { get; set; } - public int UserId { get; set; } - } -} +namespace IM_API.VOs.Group +{ + public class GroupRequestUpdateVo + { + public int RequestId { get; set; } + public int GroupId { get; set; } + public int UserId { get; set; } + } +} diff --git a/backend/IM_API/VOs/Message/MessageBaseVo.cs b/backend/IM_API/VOs/Message/MessageBaseVo.cs index a377a4f..68f9442 100644 --- a/backend/IM_API/VOs/Message/MessageBaseVo.cs +++ b/backend/IM_API/VOs/Message/MessageBaseVo.cs @@ -1,11 +1,11 @@ -using IM_API.Dtos; - -namespace IM_API.VOs.Message -{ - public record MessageBaseVo:MessageBaseDto - { - public int SequenceId { get; set; } - public string SenderName { get; set; } = ""; - public string SenderAvatar { get; set; } = ""; - } -} +using IM_API.Dtos; + +namespace IM_API.VOs.Message +{ + public record MessageBaseVo:MessageBaseDto + { + public int SequenceId { get; set; } + public string SenderName { get; set; } = ""; + public string SenderAvatar { get; set; } = ""; + } +} diff --git a/backend/IM_API/appsettings.Development.json b/backend/IM_API/appsettings.Development.json index 0c208ae..ff66ba6 100644 --- a/backend/IM_API/appsettings.Development.json +++ b/backend/IM_API/appsettings.Development.json @@ -1,8 +1,8 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - } -} +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/backend/IM_API/appsettings.json b/backend/IM_API/appsettings.json index fc895fb..0ad51c3 100644 --- a/backend/IM_API/appsettings.json +++ b/backend/IM_API/appsettings.json @@ -1,26 +1,26 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - }, - "AllowedHosts": "*", - "Jwt": { - "Key": "YourSuperSecretKey123456784124214190!", - "Issuer": "IMDemo", - "Audience": "IMClients", - "AccessTokenMinutes": 30, - "RefreshTokenDays": 30 - }, - "ConnectionStrings": { - "DefaultConnection": "Server=frp-era.com;Port=26582;Database=IM;User=product;Password=12345678;", - "Redis": "192.168.5.100:6379" - }, - "RabbitMQOptions": { - "Host": "192.168.5.100", - "Port": 5672, - "Username": "test", - "Password": "123456" - } -} +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "Jwt": { + "Key": "YourSuperSecretKey123456784124214190!", + "Issuer": "IMDemo", + "Audience": "IMClients", + "AccessTokenMinutes": 30, + "RefreshTokenDays": 30 + }, + "ConnectionStrings": { + "DefaultConnection": "Server=192.168.3.100;Port=3306;Database=IM;User=root;Password=13872911434Dyw@;", + "Redis": "192.168.3.100:6379" + }, + "RabbitMQOptions": { + "Host": "192.168.3.100", + "Port": 5672, + "Username": "test", + "Password": "123456" + } +} diff --git a/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.backup.json b/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.backup.json index 05a3c84..dd054fa 100644 --- a/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.backup.json +++ b/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.backup.json @@ -1,57 +1,57 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\", - "Documents": [ - { - "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", - "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" - }, - { - "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|c:\\users\\nanxun\\documents\\im\\backend\\signalrtest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - } - ], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [ - { - "DockedWidth": 200, - "SelectedChildIndex": 1, - "Children": [ - { - "$type": "Bookmark", - "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" - }, - { - "$type": "Document", - "DocumentIndex": 0, - "Title": "Form1.cs [\u8BBE\u8BA1]", - "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", - "RelativeDocumentMoniker": "Form1.cs", - "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs [\u8BBE\u8BA1]", - "RelativeToolTip": "Form1.cs [\u8BBE\u8BA1]", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-06T07:30:28.584Z", - "EditorCaption": " [\u8BBE\u8BA1]" - }, - { - "$type": "Document", - "DocumentIndex": 1, - "Title": "Form1.cs", - "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", - "RelativeDocumentMoniker": "Form1.cs", - "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", - "RelativeToolTip": "Form1.cs", - "ViewState": "AgIAAA4AAAAAAAAAAAAuwBQAAAAJAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-06T07:28:32.613Z", - "EditorCaption": "" - } - ] - } - ] - } - ] +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", + "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" + }, + { + "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|c:\\users\\nanxun\\documents\\im\\backend\\signalrtest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "Form1.cs [\u8BBE\u8BA1]", + "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", + "RelativeDocumentMoniker": "Form1.cs", + "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs [\u8BBE\u8BA1]", + "RelativeToolTip": "Form1.cs [\u8BBE\u8BA1]", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-06T07:30:28.584Z", + "EditorCaption": " [\u8BBE\u8BA1]" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Form1.cs", + "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", + "RelativeDocumentMoniker": "Form1.cs", + "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", + "RelativeToolTip": "Form1.cs", + "ViewState": "AgIAAA4AAAAAAAAAAAAuwBQAAAAJAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-06T07:28:32.613Z", + "EditorCaption": "" + } + ] + } + ] + } + ] } \ No newline at end of file diff --git a/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.json b/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.json index 5ba6d86..d0b1db9 100644 --- a/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.json +++ b/backend/SignalRTest/.vs/SignalRTest/v17/DocumentLayout.json @@ -1,56 +1,56 @@ -{ - "Version": 1, - "WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\", - "Documents": [ - { - "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|c:\\users\\nanxun\\documents\\im\\backend\\signalrtest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", - "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" - }, - { - "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|c:\\users\\nanxun\\documents\\im\\backend\\signalrtest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" - } - ], - "DocumentGroupContainers": [ - { - "Orientation": 0, - "VerticalTabListWidth": 256, - "DocumentGroups": [ - { - "DockedWidth": 200, - "SelectedChildIndex": 1, - "Children": [ - { - "$type": "Bookmark", - "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" - }, - { - "$type": "Document", - "DocumentIndex": 0, - "Title": "Form1.cs [\u8BBE\u8BA1]", - "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", - "RelativeDocumentMoniker": "Form1.cs", - "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs [\u8BBE\u8BA1]", - "RelativeToolTip": "Form1.cs [\u8BBE\u8BA1]", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-06T07:30:28.584Z", - "EditorCaption": " [\u8BBE\u8BA1]" - }, - { - "$type": "Document", - "DocumentIndex": 1, - "Title": "Form1.cs", - "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", - "RelativeDocumentMoniker": "Form1.cs", - "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", - "RelativeToolTip": "Form1.cs", - "ViewState": "AgIAAA4AAAAAAAAAAAAuwBQAAAAJAAAAAAAAAA==", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-12-06T07:28:32.613Z" - } - ] - } - ] - } - ] +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|c:\\users\\nanxun\\documents\\im\\backend\\signalrtest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form", + "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form" + }, + { + "AbsoluteMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|c:\\users\\nanxun\\documents\\im\\backend\\signalrtest\\form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}|SignalRTest.csproj|solutionrelative:form1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "Form1.cs [\u8BBE\u8BA1]", + "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", + "RelativeDocumentMoniker": "Form1.cs", + "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs [\u8BBE\u8BA1]", + "RelativeToolTip": "Form1.cs [\u8BBE\u8BA1]", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-06T07:30:28.584Z", + "EditorCaption": " [\u8BBE\u8BA1]" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "Form1.cs", + "DocumentMoniker": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", + "RelativeDocumentMoniker": "Form1.cs", + "ToolTip": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\Form1.cs", + "RelativeToolTip": "Form1.cs", + "ViewState": "AgIAAA4AAAAAAAAAAAAuwBQAAAAJAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-12-06T07:28:32.613Z" + } + ] + } + ] + } + ] } \ No newline at end of file diff --git a/backend/SignalRTest/Form1.Designer.cs b/backend/SignalRTest/Form1.Designer.cs index 5878f90..b0c861c 100644 --- a/backend/SignalRTest/Form1.Designer.cs +++ b/backend/SignalRTest/Form1.Designer.cs @@ -1,206 +1,206 @@ -namespace SignalRTest -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - button1 = new Button(); - button2 = new Button(); - txtUrl = new TextBox(); - TokenTxt = new TextBox(); - UrlLab = new Label(); - label2 = new Label(); - Historylab = new RichTextBox(); - label3 = new Label(); - MethodTxt = new TextBox(); - label4 = new Label(); - SendMsg = new Button(); - ParamsTxt = new TextBox(); - label5 = new Label(); - toolTip1 = new ToolTip(components); - SuspendLayout(); - // - // button1 - // - button1.Location = new Point(143, 294); - button1.Name = "button1"; - button1.Size = new Size(94, 29); - button1.TabIndex = 0; - button1.Text = "连接"; - button1.UseVisualStyleBackColor = true; - button1.Click += button1_Click; - // - // button2 - // - button2.Location = new Point(278, 294); - button2.Name = "button2"; - button2.Size = new Size(94, 29); - button2.TabIndex = 1; - button2.Text = "断开连接"; - button2.UseVisualStyleBackColor = true; - button2.Click += button2_Click; - // - // txtUrl - // - txtUrl.Location = new Point(112, 39); - txtUrl.Name = "txtUrl"; - txtUrl.Size = new Size(303, 27); - txtUrl.TabIndex = 2; - txtUrl.Text = "http://localhost:5202/chat"; - // - // TokenTxt - // - TokenTxt.Location = new Point(553, 39); - TokenTxt.Name = "TokenTxt"; - TokenTxt.Size = new Size(125, 27); - TokenTxt.TabIndex = 3; - // - // UrlLab - // - UrlLab.AutoSize = true; - UrlLab.Location = new Point(31, 42); - UrlLab.Name = "UrlLab"; - UrlLab.Size = new Size(38, 20); - UrlLab.TabIndex = 4; - UrlLab.Text = "URL"; - // - // label2 - // - label2.AutoSize = true; - label2.Location = new Point(475, 42); - label2.Name = "label2"; - label2.Size = new Size(69, 20); - label2.TabIndex = 5; - label2.Text = "登录凭证"; - // - // Historylab - // - Historylab.Location = new Point(112, 85); - Historylab.Name = "Historylab"; - Historylab.Size = new Size(303, 188); - Historylab.TabIndex = 6; - Historylab.Text = ""; - // - // label3 - // - label3.AutoSize = true; - label3.Location = new Point(16, 165); - label3.Name = "label3"; - label3.Size = new Size(69, 20); - label3.TabIndex = 7; - label3.Text = "消息历史"; - // - // MethodTxt - // - MethodTxt.Location = new Point(553, 182); - MethodTxt.Name = "MethodTxt"; - MethodTxt.Size = new Size(125, 27); - MethodTxt.TabIndex = 8; - toolTip1.SetToolTip(MethodTxt, "后端hub内对应方法名,大小写敏感"); - // - // label4 - // - label4.AutoSize = true; - label4.Location = new Point(475, 182); - label4.Name = "label4"; - label4.Size = new Size(39, 20); - label4.TabIndex = 9; - label4.Text = "方法"; - toolTip1.SetToolTip(label4, "后端hub内对应方法名,大小写敏感"); - // - // SendMsg - // - SendMsg.Location = new Point(705, 244); - SendMsg.Name = "SendMsg"; - SendMsg.Size = new Size(94, 29); - SendMsg.TabIndex = 10; - SendMsg.Text = "发送"; - SendMsg.UseVisualStyleBackColor = true; - SendMsg.Click += SendMsg_Click; - // - // ParamsTxt - // - ParamsTxt.Location = new Point(553, 246); - ParamsTxt.Name = "ParamsTxt"; - ParamsTxt.Size = new Size(125, 27); - ParamsTxt.TabIndex = 11; - toolTip1.SetToolTip(ParamsTxt, "hub方法对应参数,请使用以下格式:[参数1,参数2,参数3,...]"); - // - // label5 - // - label5.AutoSize = true; - label5.Location = new Point(475, 253); - label5.Name = "label5"; - label5.Size = new Size(39, 20); - label5.TabIndex = 12; - label5.Text = "参数"; - toolTip1.SetToolTip(label5, "hub方法对应参数,请使用以下格式:[参数1,参数2,参数3,...]"); - // - // Form1 - // - AutoScaleDimensions = new SizeF(9F, 20F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 450); - Controls.Add(label5); - Controls.Add(ParamsTxt); - Controls.Add(SendMsg); - Controls.Add(label4); - Controls.Add(MethodTxt); - Controls.Add(label3); - Controls.Add(Historylab); - Controls.Add(label2); - Controls.Add(UrlLab); - Controls.Add(TokenTxt); - Controls.Add(txtUrl); - Controls.Add(button2); - Controls.Add(button1); - Name = "Form1"; - Text = "SignalR调试工具"; - Load += Form1_Load; - ResumeLayout(false); - PerformLayout(); - } - - #endregion - - private Button button1; - private Button button2; - private TextBox txtUrl; - private TextBox TokenTxt; - private Label UrlLab; - private Label label2; - private RichTextBox Historylab; - private Label label3; - private TextBox MethodTxt; - private Label label4; - private Button SendMsg; - private TextBox ParamsTxt; - private Label label5; - private ToolTip toolTip1; - } -} +namespace SignalRTest +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + button1 = new Button(); + button2 = new Button(); + txtUrl = new TextBox(); + TokenTxt = new TextBox(); + UrlLab = new Label(); + label2 = new Label(); + Historylab = new RichTextBox(); + label3 = new Label(); + MethodTxt = new TextBox(); + label4 = new Label(); + SendMsg = new Button(); + ParamsTxt = new TextBox(); + label5 = new Label(); + toolTip1 = new ToolTip(components); + SuspendLayout(); + // + // button1 + // + button1.Location = new Point(143, 294); + button1.Name = "button1"; + button1.Size = new Size(94, 29); + button1.TabIndex = 0; + button1.Text = "连接"; + button1.UseVisualStyleBackColor = true; + button1.Click += button1_Click; + // + // button2 + // + button2.Location = new Point(278, 294); + button2.Name = "button2"; + button2.Size = new Size(94, 29); + button2.TabIndex = 1; + button2.Text = "断开连接"; + button2.UseVisualStyleBackColor = true; + button2.Click += button2_Click; + // + // txtUrl + // + txtUrl.Location = new Point(112, 39); + txtUrl.Name = "txtUrl"; + txtUrl.Size = new Size(303, 27); + txtUrl.TabIndex = 2; + txtUrl.Text = "http://localhost:5202/chat"; + // + // TokenTxt + // + TokenTxt.Location = new Point(553, 39); + TokenTxt.Name = "TokenTxt"; + TokenTxt.Size = new Size(125, 27); + TokenTxt.TabIndex = 3; + // + // UrlLab + // + UrlLab.AutoSize = true; + UrlLab.Location = new Point(31, 42); + UrlLab.Name = "UrlLab"; + UrlLab.Size = new Size(38, 20); + UrlLab.TabIndex = 4; + UrlLab.Text = "URL"; + // + // label2 + // + label2.AutoSize = true; + label2.Location = new Point(475, 42); + label2.Name = "label2"; + label2.Size = new Size(69, 20); + label2.TabIndex = 5; + label2.Text = "登录凭证"; + // + // Historylab + // + Historylab.Location = new Point(112, 85); + Historylab.Name = "Historylab"; + Historylab.Size = new Size(303, 188); + Historylab.TabIndex = 6; + Historylab.Text = ""; + // + // label3 + // + label3.AutoSize = true; + label3.Location = new Point(16, 165); + label3.Name = "label3"; + label3.Size = new Size(69, 20); + label3.TabIndex = 7; + label3.Text = "消息历史"; + // + // MethodTxt + // + MethodTxt.Location = new Point(553, 182); + MethodTxt.Name = "MethodTxt"; + MethodTxt.Size = new Size(125, 27); + MethodTxt.TabIndex = 8; + toolTip1.SetToolTip(MethodTxt, "后端hub内对应方法名,大小写敏感"); + // + // label4 + // + label4.AutoSize = true; + label4.Location = new Point(475, 182); + label4.Name = "label4"; + label4.Size = new Size(39, 20); + label4.TabIndex = 9; + label4.Text = "方法"; + toolTip1.SetToolTip(label4, "后端hub内对应方法名,大小写敏感"); + // + // SendMsg + // + SendMsg.Location = new Point(705, 244); + SendMsg.Name = "SendMsg"; + SendMsg.Size = new Size(94, 29); + SendMsg.TabIndex = 10; + SendMsg.Text = "发送"; + SendMsg.UseVisualStyleBackColor = true; + SendMsg.Click += SendMsg_Click; + // + // ParamsTxt + // + ParamsTxt.Location = new Point(553, 246); + ParamsTxt.Name = "ParamsTxt"; + ParamsTxt.Size = new Size(125, 27); + ParamsTxt.TabIndex = 11; + toolTip1.SetToolTip(ParamsTxt, "hub方法对应参数,请使用以下格式:[参数1,参数2,参数3,...]"); + // + // label5 + // + label5.AutoSize = true; + label5.Location = new Point(475, 253); + label5.Name = "label5"; + label5.Size = new Size(39, 20); + label5.TabIndex = 12; + label5.Text = "参数"; + toolTip1.SetToolTip(label5, "hub方法对应参数,请使用以下格式:[参数1,参数2,参数3,...]"); + // + // Form1 + // + AutoScaleDimensions = new SizeF(9F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(label5); + Controls.Add(ParamsTxt); + Controls.Add(SendMsg); + Controls.Add(label4); + Controls.Add(MethodTxt); + Controls.Add(label3); + Controls.Add(Historylab); + Controls.Add(label2); + Controls.Add(UrlLab); + Controls.Add(TokenTxt); + Controls.Add(txtUrl); + Controls.Add(button2); + Controls.Add(button1); + Name = "Form1"; + Text = "SignalR调试工具"; + Load += Form1_Load; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Button button1; + private Button button2; + private TextBox txtUrl; + private TextBox TokenTxt; + private Label UrlLab; + private Label label2; + private RichTextBox Historylab; + private Label label3; + private TextBox MethodTxt; + private Label label4; + private Button SendMsg; + private TextBox ParamsTxt; + private Label label5; + private ToolTip toolTip1; + } +} diff --git a/backend/SignalRTest/Form1.cs b/backend/SignalRTest/Form1.cs index 8d7a9b6..a57dc02 100644 --- a/backend/SignalRTest/Form1.cs +++ b/backend/SignalRTest/Form1.cs @@ -1,143 +1,143 @@ -using Microsoft.AspNetCore.SignalR.Client; -using System.Text.Json; -using System.Windows.Forms; - -namespace SignalRTest -{ - public partial class Form1 : Form - { - private HubConnection _connection; - public Form1() - { - InitializeComponent(); - } - - private void Form1_Load(object sender, EventArgs e) - { - - } - - private async void button1_Click(object sender, EventArgs e) - { - try - { - _connection = new HubConnectionBuilder() - .WithUrl(txtUrl.Text, options => - { - options.AccessTokenProvider = () => - Task.FromResult(TokenTxt.Text); - }) - .WithAutomaticReconnect() - .Build(); - - _connection.On("ReceiveMessage", (user, message) => - { - Historylab.Invoke(new Action(() => - { - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Green; - Historylab.AppendText("Ϣ" + message + "\n"); - })); - }); - - _connection.Reconnecting += (ex) => - { - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Blue; - Historylab.AppendText("..." + "\n"); - return System.Threading.Tasks.Task.CompletedTask; - }; - - _connection.Reconnected += (id) => - { - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Blue; - Historylab.AppendText("ɹ" + "\n"); - return System.Threading.Tasks.Task.CompletedTask; - }; - - await _connection.StartAsync(); - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Blue; - Historylab.AppendText("ӳɹ" + "\n"); - } - catch (Exception ex) - { - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Blue; - Historylab.AppendText("ʧܣ" + ex.Message + "\n"); - } - } - - private async void button2_Click(object sender, EventArgs e) - { - if (_connection != null) - { - await _connection.StopAsync(); - await _connection.DisposeAsync(); - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Blue; - Historylab.AppendText("Ͽӣ" + "\n"); - } - } - - private async void SendMsg_Click(object sender, EventArgs e) - { - if (_connection == null || _connection.State != HubConnectionState.Connected) - { - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Blue; - Historylab.AppendText("ӣ" + "\n"); - return; - } - - try - { - var method = MethodTxt.Text.Trim(); - var paramText = ParamsTxt.Text.Trim(); - - object[] parameters = string.IsNullOrWhiteSpace(paramText) - ? Array.Empty() - : JsonSerializer.Deserialize(paramText); - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Red; - Historylab.AppendText($"Invoke: {method} {paramText}" + "\n"); - await _connection.InvokeCoreAsync(method,parameters); - - } - catch (Exception ex) - { - // ƶ굽ıĩβ - Historylab.SelectionStart = Historylab.TextLength; - Historylab.SelectionLength = 0; - - Historylab.SelectionColor = Color.Blue; - Historylab.AppendText($"ʧ: {ex.Message}" + "\n"); - } - } - } -} +using Microsoft.AspNetCore.SignalR.Client; +using System.Text.Json; +using System.Windows.Forms; + +namespace SignalRTest +{ + public partial class Form1 : Form + { + private HubConnection _connection; + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + + } + + private async void button1_Click(object sender, EventArgs e) + { + try + { + _connection = new HubConnectionBuilder() + .WithUrl(txtUrl.Text, options => + { + options.AccessTokenProvider = () => + Task.FromResult(TokenTxt.Text); + }) + .WithAutomaticReconnect() + .Build(); + + _connection.On("ReceiveMessage", (user, message) => + { + Historylab.Invoke(new Action(() => + { + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Green; + Historylab.AppendText("Ϣ" + message + "\n"); + })); + }); + + _connection.Reconnecting += (ex) => + { + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Blue; + Historylab.AppendText("..." + "\n"); + return System.Threading.Tasks.Task.CompletedTask; + }; + + _connection.Reconnected += (id) => + { + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Blue; + Historylab.AppendText("ɹ" + "\n"); + return System.Threading.Tasks.Task.CompletedTask; + }; + + await _connection.StartAsync(); + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Blue; + Historylab.AppendText("ӳɹ" + "\n"); + } + catch (Exception ex) + { + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Blue; + Historylab.AppendText("ʧܣ" + ex.Message + "\n"); + } + } + + private async void button2_Click(object sender, EventArgs e) + { + if (_connection != null) + { + await _connection.StopAsync(); + await _connection.DisposeAsync(); + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Blue; + Historylab.AppendText("Ͽӣ" + "\n"); + } + } + + private async void SendMsg_Click(object sender, EventArgs e) + { + if (_connection == null || _connection.State != HubConnectionState.Connected) + { + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Blue; + Historylab.AppendText("ӣ" + "\n"); + return; + } + + try + { + var method = MethodTxt.Text.Trim(); + var paramText = ParamsTxt.Text.Trim(); + + object[] parameters = string.IsNullOrWhiteSpace(paramText) + ? Array.Empty() + : JsonSerializer.Deserialize(paramText); + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Red; + Historylab.AppendText($"Invoke: {method} {paramText}" + "\n"); + await _connection.InvokeCoreAsync(method,parameters); + + } + catch (Exception ex) + { + // ƶ굽ıĩβ + Historylab.SelectionStart = Historylab.TextLength; + Historylab.SelectionLength = 0; + + Historylab.SelectionColor = Color.Blue; + Historylab.AppendText($"ʧ: {ex.Message}" + "\n"); + } + } + } +} diff --git a/backend/SignalRTest/Form1.resx b/backend/SignalRTest/Form1.resx index dcfd08d..c342c56 100644 --- a/backend/SignalRTest/Form1.resx +++ b/backend/SignalRTest/Form1.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/backend/SignalRTest/Program.cs b/backend/SignalRTest/Program.cs index 66a6f3b..f5b8baf 100644 --- a/backend/SignalRTest/Program.cs +++ b/backend/SignalRTest/Program.cs @@ -1,17 +1,17 @@ -namespace SignalRTest -{ - internal static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); - } - } +namespace SignalRTest +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new Form1()); + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml b/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml index 5cdd245..102cb70 100644 --- a/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml +++ b/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml @@ -1,16 +1,16 @@ - - - - - Release - Any CPU - bin\Release\net8.0-windows\publish\win-x64\ - FileSystem - <_TargetId>Folder - net8.0-windows - win-x64 - true - true - false - + + + + + Release + Any CPU + bin\Release\net8.0-windows\publish\win-x64\ + FileSystem + <_TargetId>Folder + net8.0-windows + win-x64 + true + true + false + \ No newline at end of file diff --git a/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml.user b/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml.user index 5bea8d3..032ea68 100644 --- a/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/backend/SignalRTest/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -1,8 +1,8 @@ - - - - - True|2025-12-06T11:34:00.2606316Z||;True|2025-12-06T19:25:07.4627450+08:00||; - - + + + + + True|2025-12-06T11:34:00.2606316Z||;True|2025-12-06T19:25:07.4627450+08:00||; + + \ No newline at end of file diff --git a/backend/SignalRTest/SignalRTest.csproj b/backend/SignalRTest/SignalRTest.csproj index 2ddba81..5cfb87d 100644 --- a/backend/SignalRTest/SignalRTest.csproj +++ b/backend/SignalRTest/SignalRTest.csproj @@ -1,15 +1,15 @@ - - - - WinExe - net8.0-windows - enable - true - enable - - - - - - + + + + WinExe + net8.0-windows + enable + true + enable + + + + + + \ No newline at end of file diff --git a/backend/SignalRTest/SignalRTest.csproj.user b/backend/SignalRTest/SignalRTest.csproj.user index 8457d4d..5b52483 100644 --- a/backend/SignalRTest/SignalRTest.csproj.user +++ b/backend/SignalRTest/SignalRTest.csproj.user @@ -1,11 +1,11 @@ - - - - <_LastSelectedProfileId>C:\Users\nanxun\Documents\IM\backend\SignalRTest\Properties\PublishProfiles\FolderProfile.pubxml - - - - Form - - + + + + <_LastSelectedProfileId>C:\Users\nanxun\Documents\IM\backend\SignalRTest\Properties\PublishProfiles\FolderProfile.pubxml + + + + Form + + \ No newline at end of file diff --git a/backend/SignalRTest/SignalRTest.sln b/backend/SignalRTest/SignalRTest.sln index 753d829..c19da8b 100644 --- a/backend/SignalRTest/SignalRTest.sln +++ b/backend/SignalRTest/SignalRTest.sln @@ -1,25 +1,25 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.14.36408.4 d17.14 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalRTest", "SignalRTest.csproj", "{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2D41DBBA-147E-49F2-A781-E7CD9E85666F} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36408.4 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SignalRTest", "SignalRTest.csproj", "{266B86EE-17CF-4DD4-84C8-8CE3E2640A70}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {266B86EE-17CF-4DD4-84C8-8CE3E2640A70}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2D41DBBA-147E-49F2-A781-E7CD9E85666F} + EndGlobalSection +EndGlobal diff --git a/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.deps.json b/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.deps.json index 8a84b48..0b7a595 100644 --- a/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.deps.json +++ b/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.deps.json @@ -1,419 +1,419 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": { - "SignalRTest/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": "10.0.0" - }, - "runtime": { - "SignalRTest.dll": {} - } - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.IO.Pipelines/10.0.0": { - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Encodings.Web/10.0.0": { - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - }, - "runtimeTargets": { - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { - "rid": "browser", - "assetType": "runtime", - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Json/10.0.0": { - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Threading.Channels/10.0.0": { - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - } - } - }, - "libraries": { - "SignalRTest/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", - "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", - "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", - "path": "microsoft.aspnetcore.http.connections.client/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", - "path": "microsoft.aspnetcore.http.connections.common/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", - "path": "microsoft.aspnetcore.signalr.client/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", - "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", - "path": "microsoft.aspnetcore.signalr.common/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", - "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", - "path": "microsoft.bcl.asyncinterfaces/10.0.0", - "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", - "path": "microsoft.bcl.timeprovider/10.0.0", - "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", - "path": "microsoft.extensions.dependencyinjection/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", - "path": "microsoft.extensions.features/10.0.0", - "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", - "path": "microsoft.extensions.logging/10.0.0", - "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", - "path": "microsoft.extensions.logging.abstractions/10.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", - "path": "microsoft.extensions.options/10.0.0", - "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", - "path": "microsoft.extensions.primitives/10.0.0", - "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", - "path": "system.diagnostics.diagnosticsource/10.0.0", - "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", - "path": "system.io.pipelines/10.0.0", - "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", - "path": "system.net.serversentevents/10.0.0", - "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", - "path": "system.text.encodings.web/10.0.0", - "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" - }, - "System.Text.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", - "path": "system.text.json/10.0.0", - "hashPath": "system.text.json.10.0.0.nupkg.sha512" - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", - "path": "system.threading.channels/10.0.0", - "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" - } - } +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "SignalRTest/1.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": "10.0.0" + }, + "runtime": { + "SignalRTest.dll": {} + } + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.IO.Pipelines/10.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Encodings.Web/10.0.0": { + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + }, + "runtimeTargets": { + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { + "rid": "browser", + "assetType": "runtime", + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Json/10.0.0": { + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Threading.Channels/10.0.0": { + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + } + } + }, + "libraries": { + "SignalRTest/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", + "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", + "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", + "path": "microsoft.aspnetcore.http.connections.client/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", + "path": "microsoft.aspnetcore.http.connections.common/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", + "path": "microsoft.aspnetcore.signalr.client/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", + "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", + "path": "microsoft.aspnetcore.signalr.common/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", + "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", + "path": "microsoft.bcl.asyncinterfaces/10.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", + "path": "microsoft.bcl.timeprovider/10.0.0", + "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", + "path": "microsoft.extensions.dependencyinjection/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", + "path": "microsoft.extensions.features/10.0.0", + "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", + "path": "microsoft.extensions.logging/10.0.0", + "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", + "path": "microsoft.extensions.logging.abstractions/10.0.0", + "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", + "path": "microsoft.extensions.options/10.0.0", + "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", + "path": "microsoft.extensions.primitives/10.0.0", + "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", + "path": "system.diagnostics.diagnosticsource/10.0.0", + "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", + "path": "system.io.pipelines/10.0.0", + "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", + "path": "system.net.serversentevents/10.0.0", + "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", + "path": "system.text.encodings.web/10.0.0", + "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" + }, + "System.Text.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", + "path": "system.text.json/10.0.0", + "hashPath": "system.text.json.10.0.0.nupkg.sha512" + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", + "path": "system.threading.channels/10.0.0", + "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.runtimeconfig.json b/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.runtimeconfig.json index b2dedf3..a8d07ca 100644 --- a/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.runtimeconfig.json +++ b/backend/SignalRTest/bin/Debug/net8.0-windows/SignalRTest.runtimeconfig.json @@ -1,19 +1,19 @@ -{ - "runtimeOptions": { - "tfm": "net8.0", - "frameworks": [ - { - "name": "Microsoft.NETCore.App", - "version": "8.0.0" - }, - { - "name": "Microsoft.WindowsDesktop.App", - "version": "8.0.0" - } - ], - "configProperties": { - "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, - "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false - } - } +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.deps.json b/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.deps.json index 8a84b48..0b7a595 100644 --- a/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.deps.json +++ b/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.deps.json @@ -1,419 +1,419 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": { - "SignalRTest/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": "10.0.0" - }, - "runtime": { - "SignalRTest.dll": {} - } - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.IO.Pipelines/10.0.0": { - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Encodings.Web/10.0.0": { - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - }, - "runtimeTargets": { - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { - "rid": "browser", - "assetType": "runtime", - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Json/10.0.0": { - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Threading.Channels/10.0.0": { - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - } - } - }, - "libraries": { - "SignalRTest/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", - "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", - "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", - "path": "microsoft.aspnetcore.http.connections.client/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", - "path": "microsoft.aspnetcore.http.connections.common/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", - "path": "microsoft.aspnetcore.signalr.client/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", - "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", - "path": "microsoft.aspnetcore.signalr.common/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", - "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", - "path": "microsoft.bcl.asyncinterfaces/10.0.0", - "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", - "path": "microsoft.bcl.timeprovider/10.0.0", - "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", - "path": "microsoft.extensions.dependencyinjection/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", - "path": "microsoft.extensions.features/10.0.0", - "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", - "path": "microsoft.extensions.logging/10.0.0", - "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", - "path": "microsoft.extensions.logging.abstractions/10.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", - "path": "microsoft.extensions.options/10.0.0", - "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", - "path": "microsoft.extensions.primitives/10.0.0", - "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", - "path": "system.diagnostics.diagnosticsource/10.0.0", - "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", - "path": "system.io.pipelines/10.0.0", - "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", - "path": "system.net.serversentevents/10.0.0", - "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", - "path": "system.text.encodings.web/10.0.0", - "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" - }, - "System.Text.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", - "path": "system.text.json/10.0.0", - "hashPath": "system.text.json.10.0.0.nupkg.sha512" - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", - "path": "system.threading.channels/10.0.0", - "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" - } - } +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "SignalRTest/1.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": "10.0.0" + }, + "runtime": { + "SignalRTest.dll": {} + } + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.IO.Pipelines/10.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Encodings.Web/10.0.0": { + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + }, + "runtimeTargets": { + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { + "rid": "browser", + "assetType": "runtime", + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Json/10.0.0": { + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Threading.Channels/10.0.0": { + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + } + } + }, + "libraries": { + "SignalRTest/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", + "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", + "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", + "path": "microsoft.aspnetcore.http.connections.client/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", + "path": "microsoft.aspnetcore.http.connections.common/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", + "path": "microsoft.aspnetcore.signalr.client/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", + "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", + "path": "microsoft.aspnetcore.signalr.common/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", + "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", + "path": "microsoft.bcl.asyncinterfaces/10.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", + "path": "microsoft.bcl.timeprovider/10.0.0", + "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", + "path": "microsoft.extensions.dependencyinjection/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", + "path": "microsoft.extensions.features/10.0.0", + "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", + "path": "microsoft.extensions.logging/10.0.0", + "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", + "path": "microsoft.extensions.logging.abstractions/10.0.0", + "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", + "path": "microsoft.extensions.options/10.0.0", + "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", + "path": "microsoft.extensions.primitives/10.0.0", + "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", + "path": "system.diagnostics.diagnosticsource/10.0.0", + "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", + "path": "system.io.pipelines/10.0.0", + "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", + "path": "system.net.serversentevents/10.0.0", + "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", + "path": "system.text.encodings.web/10.0.0", + "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" + }, + "System.Text.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", + "path": "system.text.json/10.0.0", + "hashPath": "system.text.json.10.0.0.nupkg.sha512" + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", + "path": "system.threading.channels/10.0.0", + "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.runtimeconfig.json b/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.runtimeconfig.json index ad83f36..269c3d7 100644 --- a/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.runtimeconfig.json +++ b/backend/SignalRTest/bin/Release/net8.0-windows/SignalRTest.runtimeconfig.json @@ -1,20 +1,20 @@ -{ - "runtimeOptions": { - "tfm": "net8.0", - "frameworks": [ - { - "name": "Microsoft.NETCore.App", - "version": "8.0.0" - }, - { - "name": "Microsoft.WindowsDesktop.App", - "version": "8.0.0" - } - ], - "configProperties": { - "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, - "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, - "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false - } - } +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.deps.json b/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.deps.json index 7c385e3..4f338e6 100644 --- a/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.deps.json +++ b/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.deps.json @@ -1,1369 +1,1369 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0/win-x64", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": {}, - ".NETCoreApp,Version=v8.0/win-x64": { - "SignalRTest/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": "10.0.0", - "Microsoft.NET.ILLink.Tasks": "8.0.19", - "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.19", - "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64": "8.0.19" - }, - "runtime": { - "SignalRTest.dll": {} - } - }, - "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { - "runtime": { - "Microsoft.CSharp.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "Microsoft.VisualBasic.Core.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.1925.36514" - }, - "Microsoft.Win32.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "Microsoft.Win32.Registry.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.AppContext.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Buffers.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.Concurrent.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.Immutable.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.NonGeneric.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.Specialized.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.Annotations.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.DataAnnotations.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.EventBasedAsync.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.TypeConverter.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Configuration.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Console.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Core.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Data.Common.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Data.DataSetExtensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Data.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Contracts.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Debug.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.FileVersionInfo.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Process.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.StackTrace.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.TextWriterTraceListener.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Tools.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.TraceSource.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Tracing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Drawing.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Dynamic.Runtime.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Formats.Asn1.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Formats.Tar.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Globalization.Calendars.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Globalization.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Globalization.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.Brotli.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.FileSystem.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.ZipFile.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.DriveInfo.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.Watcher.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.IsolatedStorage.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.MemoryMappedFiles.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Pipes.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Pipes.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.UnmanagedMemoryStream.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.Expressions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.Parallel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.Queryable.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Memory.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Http.Json.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Http.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.HttpListener.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Mail.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.NameResolution.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.NetworkInformation.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Ping.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Quic.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Requests.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Security.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.ServicePoint.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Sockets.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebClient.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebHeaderCollection.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebProxy.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebSockets.Client.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebSockets.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Numerics.Vectors.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Numerics.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ObjectModel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.CoreLib.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.DataContractSerialization.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.Uri.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.Xml.Linq.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.Xml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.DispatchProxy.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Emit.ILGeneration.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Emit.Lightweight.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Emit.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Metadata.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.TypeExtensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Resources.Reader.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Resources.ResourceManager.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Resources.Writer.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.CompilerServices.Unsafe.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.CompilerServices.VisualC.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Handles.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.InteropServices.JavaScript.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.InteropServices.RuntimeInformation.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.InteropServices.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Intrinsics.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Loader.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Numerics.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Formatters.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Json.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Xml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Claims.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Algorithms.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Cng.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Csp.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Encoding.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.OpenSsl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.X509Certificates.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Principal.Windows.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Principal.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.SecureString.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ServiceModel.Web.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ServiceProcess.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.Encoding.CodePages.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.Encoding.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.Encoding.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.RegularExpressions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Overlapped.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.Dataflow.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.Parallel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Thread.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.ThreadPool.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Timer.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Transactions.Local.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Transactions.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ValueTuple.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Web.HttpUtility.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Web.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Windows.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.Linq.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.ReaderWriter.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.Serialization.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XDocument.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XPath.XDocument.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XPath.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XmlDocument.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XmlSerializer.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "mscorlib.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "netstandard.dll": { - "assemblyVersion": "2.1.0.0", - "fileVersion": "8.0.1925.36514" - } - }, - "native": { - "Microsoft.DiaSymReader.Native.amd64.dll": { - "fileVersion": "14.42.34436.0" - }, - "System.IO.Compression.Native.dll": { - "fileVersion": "8.0.1925.36514" - }, - "clretwrc.dll": { - "fileVersion": "8.0.1925.36514" - }, - "clrgc.dll": { - "fileVersion": "8.0.1925.36514" - }, - "clrjit.dll": { - "fileVersion": "8.0.1925.36514" - }, - "coreclr.dll": { - "fileVersion": "8.0.1925.36514" - }, - "createdump.exe": { - "fileVersion": "8.0.1925.36514" - }, - "hostfxr.dll": { - "fileVersion": "8.0.1925.36514" - }, - "hostpolicy.dll": { - "fileVersion": "8.0.1925.36514" - }, - "mscordaccore.dll": { - "fileVersion": "8.0.1925.36514" - }, - "mscordaccore_amd64_amd64_8.0.1925.36514.dll": { - "fileVersion": "8.0.1925.36514" - }, - "mscordbi.dll": { - "fileVersion": "8.0.1925.36514" - }, - "mscorrc.dll": { - "fileVersion": "8.0.1925.36514" - }, - "msquic.dll": { - "fileVersion": "2.4.8.0" - } - } - }, - "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { - "runtime": { - "Accessibility.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "DirectWriteForwarder.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "Microsoft.VisualBasic.Forms.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "Microsoft.VisualBasic.dll": { - "assemblyVersion": "10.1.0.0", - "fileVersion": "8.0.1925.36703" - }, - "Microsoft.Win32.Registry.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "Microsoft.Win32.SystemEvents.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "PresentationCore.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemCore.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemData.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemDrawing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemXml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemXmlLinq.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Aero.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Aero2.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.AeroLite.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Classic.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Luna.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Royale.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationUI.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "ReachFramework.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.CodeDom.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Configuration.ConfigurationManager.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Design.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Diagnostics.EventLog.Messages.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "0.0.0.0" - }, - "System.Diagnostics.EventLog.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.PerformanceCounter.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.DirectoryServices.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Drawing.Common.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Drawing.Design.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Drawing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.IO.Packaging.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Printing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Resources.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Pkcs.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.ProtectedData.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Xml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Permissions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Windows.Controls.Ribbon.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Windows.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Windows.Forms.Design.Editors.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Forms.Design.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Forms.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Forms.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Input.Manipulations.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Windows.Presentation.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Xaml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationClient.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationClientSideProviders.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationProvider.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationTypes.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "WindowsBase.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "WindowsFormsIntegration.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - } - }, - "native": { - "D3DCompiler_47_cor3.dll": { - "fileVersion": "10.0.22621.3233" - }, - "PenImc_cor3.dll": { - "fileVersion": "8.0.1925.36811" - }, - "PresentationNative_cor3.dll": { - "fileVersion": "8.0.25.16802" - }, - "vcruntime140_cor3.dll": { - "fileVersion": "14.42.34438.0" - }, - "wpfgfx_cor3.dll": { - "fileVersion": "8.0.1925.36811" - } - } - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.NET.ILLink.Tasks/8.0.19": {}, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.IO.Pipelines/10.0.0": { - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Encodings.Web/10.0.0": { - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Json/10.0.0": { - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Threading.Channels/10.0.0": { - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - } - } - }, - "libraries": { - "SignalRTest/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { - "type": "runtimepack", - "serviceable": false, - "sha512": "" - }, - "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { - "type": "runtimepack", - "serviceable": false, - "sha512": "" - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", - "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", - "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", - "path": "microsoft.aspnetcore.http.connections.client/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", - "path": "microsoft.aspnetcore.http.connections.common/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", - "path": "microsoft.aspnetcore.signalr.client/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", - "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", - "path": "microsoft.aspnetcore.signalr.common/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", - "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", - "path": "microsoft.bcl.asyncinterfaces/10.0.0", - "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", - "path": "microsoft.bcl.timeprovider/10.0.0", - "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", - "path": "microsoft.extensions.dependencyinjection/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", - "path": "microsoft.extensions.features/10.0.0", - "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", - "path": "microsoft.extensions.logging/10.0.0", - "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", - "path": "microsoft.extensions.logging.abstractions/10.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", - "path": "microsoft.extensions.options/10.0.0", - "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", - "path": "microsoft.extensions.primitives/10.0.0", - "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" - }, - "Microsoft.NET.ILLink.Tasks/8.0.19": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IhHf+zeZiaE5EXRyxILd4qM+Hj9cxV3sa8MpzZgeEhpvaG3a1VEGF6UCaPFLO44Kua3JkLKluE0SWVamS50PlA==", - "path": "microsoft.net.illink.tasks/8.0.19", - "hashPath": "microsoft.net.illink.tasks.8.0.19.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", - "path": "system.diagnostics.diagnosticsource/10.0.0", - "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", - "path": "system.io.pipelines/10.0.0", - "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", - "path": "system.net.serversentevents/10.0.0", - "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", - "path": "system.text.encodings.web/10.0.0", - "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" - }, - "System.Text.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", - "path": "system.text.json/10.0.0", - "hashPath": "system.text.json.10.0.0.nupkg.sha512" - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", - "path": "system.threading.channels/10.0.0", - "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" - } - }, - "runtimes": { - "win-x64": [ - "win", - "any", - "base" - ] - } +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0/win-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": {}, + ".NETCoreApp,Version=v8.0/win-x64": { + "SignalRTest/1.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": "10.0.0", + "Microsoft.NET.ILLink.Tasks": "8.0.19", + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.19", + "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64": "8.0.19" + }, + "runtime": { + "SignalRTest.dll": {} + } + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { + "runtime": { + "Microsoft.CSharp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1925.36514" + }, + "Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "Microsoft.Win32.Registry.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.AppContext.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Buffers.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.Concurrent.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.Immutable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.NonGeneric.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.Specialized.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.Annotations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Console.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Data.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Data.DataSetExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Contracts.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Debug.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Process.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Tools.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Tracing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Drawing.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Dynamic.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Formats.Asn1.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Formats.Tar.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Globalization.Calendars.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Globalization.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Globalization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.Brotli.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.IsolatedStorage.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Pipes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.Expressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.Queryable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Http.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Http.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.HttpListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Mail.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.NameResolution.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.NetworkInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Ping.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Quic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Requests.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Security.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.ServicePoint.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Sockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebSockets.Client.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebSockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Numerics.Vectors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ObjectModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.CoreLib.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.DataContractSerialization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.Uri.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.Xml.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Emit.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Metadata.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Resources.Reader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Resources.ResourceManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Resources.Writer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Handles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.InteropServices.JavaScript.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.InteropServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Intrinsics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Loader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Numerics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Claims.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Principal.Windows.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Principal.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.SecureString.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.RegularExpressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Overlapped.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Thread.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.ThreadPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Timer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Transactions.Local.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ValueTuple.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Web.HttpUtility.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.ReaderWriter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XPath.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XmlDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XmlSerializer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "8.0.1925.36514" + } + }, + "native": { + "Microsoft.DiaSymReader.Native.amd64.dll": { + "fileVersion": "14.42.34436.0" + }, + "System.IO.Compression.Native.dll": { + "fileVersion": "8.0.1925.36514" + }, + "clretwrc.dll": { + "fileVersion": "8.0.1925.36514" + }, + "clrgc.dll": { + "fileVersion": "8.0.1925.36514" + }, + "clrjit.dll": { + "fileVersion": "8.0.1925.36514" + }, + "coreclr.dll": { + "fileVersion": "8.0.1925.36514" + }, + "createdump.exe": { + "fileVersion": "8.0.1925.36514" + }, + "hostfxr.dll": { + "fileVersion": "8.0.1925.36514" + }, + "hostpolicy.dll": { + "fileVersion": "8.0.1925.36514" + }, + "mscordaccore.dll": { + "fileVersion": "8.0.1925.36514" + }, + "mscordaccore_amd64_amd64_8.0.1925.36514.dll": { + "fileVersion": "8.0.1925.36514" + }, + "mscordbi.dll": { + "fileVersion": "8.0.1925.36514" + }, + "mscorrc.dll": { + "fileVersion": "8.0.1925.36514" + }, + "msquic.dll": { + "fileVersion": "2.4.8.0" + } + } + }, + "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { + "runtime": { + "Accessibility.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "DirectWriteForwarder.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "Microsoft.VisualBasic.Forms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.1.0.0", + "fileVersion": "8.0.1925.36703" + }, + "Microsoft.Win32.Registry.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "Microsoft.Win32.SystemEvents.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "PresentationCore.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemCore.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemData.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemDrawing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemXml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemXmlLinq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Aero.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Aero2.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.AeroLite.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Classic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Luna.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Royale.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationUI.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "ReachFramework.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.CodeDom.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Design.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Diagnostics.EventLog.Messages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "0.0.0.0" + }, + "System.Diagnostics.EventLog.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.PerformanceCounter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.DirectoryServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Drawing.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Drawing.Design.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Drawing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.IO.Packaging.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Printing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Resources.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Pkcs.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Permissions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Windows.Controls.Ribbon.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Windows.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Windows.Forms.Design.Editors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Forms.Design.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Forms.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Forms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Input.Manipulations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Windows.Presentation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Xaml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationClientSideProviders.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationProvider.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationTypes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "WindowsBase.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "WindowsFormsIntegration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + } + }, + "native": { + "D3DCompiler_47_cor3.dll": { + "fileVersion": "10.0.22621.3233" + }, + "PenImc_cor3.dll": { + "fileVersion": "8.0.1925.36811" + }, + "PresentationNative_cor3.dll": { + "fileVersion": "8.0.25.16802" + }, + "vcruntime140_cor3.dll": { + "fileVersion": "14.42.34438.0" + }, + "wpfgfx_cor3.dll": { + "fileVersion": "8.0.1925.36811" + } + } + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.NET.ILLink.Tasks/8.0.19": {}, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.IO.Pipelines/10.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Encodings.Web/10.0.0": { + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Json/10.0.0": { + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Threading.Channels/10.0.0": { + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + } + } + }, + "libraries": { + "SignalRTest/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", + "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", + "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", + "path": "microsoft.aspnetcore.http.connections.client/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", + "path": "microsoft.aspnetcore.http.connections.common/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", + "path": "microsoft.aspnetcore.signalr.client/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", + "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", + "path": "microsoft.aspnetcore.signalr.common/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", + "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", + "path": "microsoft.bcl.asyncinterfaces/10.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", + "path": "microsoft.bcl.timeprovider/10.0.0", + "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", + "path": "microsoft.extensions.dependencyinjection/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", + "path": "microsoft.extensions.features/10.0.0", + "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", + "path": "microsoft.extensions.logging/10.0.0", + "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", + "path": "microsoft.extensions.logging.abstractions/10.0.0", + "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", + "path": "microsoft.extensions.options/10.0.0", + "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", + "path": "microsoft.extensions.primitives/10.0.0", + "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" + }, + "Microsoft.NET.ILLink.Tasks/8.0.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IhHf+zeZiaE5EXRyxILd4qM+Hj9cxV3sa8MpzZgeEhpvaG3a1VEGF6UCaPFLO44Kua3JkLKluE0SWVamS50PlA==", + "path": "microsoft.net.illink.tasks/8.0.19", + "hashPath": "microsoft.net.illink.tasks.8.0.19.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", + "path": "system.diagnostics.diagnosticsource/10.0.0", + "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", + "path": "system.io.pipelines/10.0.0", + "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", + "path": "system.net.serversentevents/10.0.0", + "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", + "path": "system.text.encodings.web/10.0.0", + "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" + }, + "System.Text.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", + "path": "system.text.json/10.0.0", + "hashPath": "system.text.json.10.0.0.nupkg.sha512" + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", + "path": "system.threading.channels/10.0.0", + "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" + } + }, + "runtimes": { + "win-x64": [ + "win", + "any", + "base" + ] + } } \ No newline at end of file diff --git a/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.runtimeconfig.json b/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.runtimeconfig.json index 5fb4863..b05f485 100644 --- a/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.runtimeconfig.json +++ b/backend/SignalRTest/bin/Release/net8.0-windows/win-x64/SignalRTest.runtimeconfig.json @@ -1,20 +1,20 @@ -{ - "runtimeOptions": { - "tfm": "net8.0", - "includedFrameworks": [ - { - "name": "Microsoft.NETCore.App", - "version": "8.0.19" - }, - { - "name": "Microsoft.WindowsDesktop.App", - "version": "8.0.19" - } - ], - "configProperties": { - "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, - "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, - "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false - } - } +{ + "runtimeOptions": { + "tfm": "net8.0", + "includedFrameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.19" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.19" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/backend/SignalRTest/obj/Debug/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs index 2217181..678fc5f 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -1,4 +1,4 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfo.cs b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfo.cs index 6e68c6a..63c202b 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfo.cs +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfo.cs @@ -1,25 +1,25 @@ -//------------------------------------------------------------------------------ -// -// 此代码由工具生成。 -// 运行时版本:4.0.30319.42000 -// -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+219665d4657ce917f2ec72657b9e54ab4daccc10")] -[assembly: System.Reflection.AssemblyProductAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyTitleAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] -[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] -[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] - -// 由 MSBuild WriteCodeFragment 类生成。 - +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+219665d4657ce917f2ec72657b9e54ab4daccc10")] +[assembly: System.Reflection.AssemblyProductAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyTitleAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] +[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] +[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache index e0e86c9..82fd38e 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache @@ -1 +1 @@ -7b34bc95a170122dd9a850b10d96882caa3af0e14348359c3820644e1bf59d7d +7b34bc95a170122dd9a850b10d96882caa3af0e14348359c3820644e1bf59d7d diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig index 9aa82f8..ab86a05 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig @@ -1,22 +1,22 @@ -is_global = true -build_property.ApplicationManifest = -build_property.StartupObject = -build_property.ApplicationDefaultFont = -build_property.ApplicationHighDpiMode = -build_property.ApplicationUseCompatibleTextRendering = -build_property.ApplicationVisualStyles = -build_property.TargetFramework = net8.0-windows -build_property.TargetPlatformMinVersion = 7.0 -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = SignalRTest -build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\SignalRTest\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.CsWinRTUseWindowsUIXamlProjections = false -build_property.EffectiveAnalysisLevelStyle = 8.0 -build_property.EnableCodeStyleSeverity = +is_global = true +build_property.ApplicationManifest = +build_property.StartupObject = +build_property.ApplicationDefaultFont = +build_property.ApplicationHighDpiMode = +build_property.ApplicationUseCompatibleTextRendering = +build_property.ApplicationVisualStyles = +build_property.TargetFramework = net8.0-windows +build_property.TargetPlatformMinVersion = 7.0 +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = SignalRTest +build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\SignalRTest\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GlobalUsings.g.cs b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GlobalUsings.g.cs index 84bbb89..fea4009 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GlobalUsings.g.cs +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.GlobalUsings.g.cs @@ -1,10 +1,10 @@ -// -global using global::System; -global using global::System.Collections.Generic; -global using global::System.Drawing; -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; -global using global::System.Windows.Forms; +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.Drawing; +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; +global using global::System.Windows.Forms; diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache index 2a2e766..18d9a16 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -798df1c64700bafd0af19dbc122dfc8329d96a84decc4c645cf227078afc5b70 +798df1c64700bafd0af19dbc122dfc8329d96a84decc4c645cf227078afc5b70 diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt index 219b150..031c7da 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt @@ -1,41 +1,41 @@ -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.exe -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.deps.json -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.runtimeconfig.json -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.pdb -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.Connections.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Client.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.Core.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Protocols.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Bcl.AsyncInterfaces.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Bcl.TimeProvider.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.DependencyInjection.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.DependencyInjection.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Features.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Logging.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Logging.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Options.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Diagnostics.DiagnosticSource.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.IO.Pipelines.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Net.ServerSentEvents.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Text.Encodings.Web.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Text.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Threading.Channels.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\runtimes\browser\lib\net8.0\System.Text.Encodings.Web.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.csproj.AssemblyReference.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.Form1.resources -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.csproj.GenerateResource.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.GeneratedMSBuildEditorConfig.editorconfig -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.AssemblyInfoInputs.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.AssemblyInfo.cs -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.csproj.CoreCompileInputs.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRT.5CF90B77.Up2Date -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\refint\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.pdb -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.genruntimeconfig.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\ref\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.exe +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.deps.json +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.runtimeconfig.json +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\SignalRTest.pdb +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.Connections.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Client.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.Core.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.AspNetCore.SignalR.Protocols.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Bcl.AsyncInterfaces.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Bcl.TimeProvider.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.DependencyInjection.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.DependencyInjection.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Features.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Logging.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Logging.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Options.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\Microsoft.Extensions.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Diagnostics.DiagnosticSource.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.IO.Pipelines.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Net.ServerSentEvents.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Text.Encodings.Web.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Text.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\System.Threading.Channels.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Debug\net8.0-windows\runtimes\browser\lib\net8.0\System.Text.Encodings.Web.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.csproj.AssemblyReference.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.Form1.resources +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.csproj.GenerateResource.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.AssemblyInfoInputs.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.AssemblyInfo.cs +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.csproj.CoreCompileInputs.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRT.5CF90B77.Up2Date +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\refint\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.pdb +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\SignalRTest.genruntimeconfig.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Debug\net8.0-windows\ref\SignalRTest.dll diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.deps.json b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.deps.json index d315bf2..2c020ba 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.deps.json +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.deps.json @@ -1,406 +1,406 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": { - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.IO.Pipelines/10.0.0": { - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Encodings.Web/10.0.0": { - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - }, - "runtimeTargets": { - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { - "rid": "browser", - "assetType": "runtime", - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Json/10.0.0": { - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Threading.Channels/10.0.0": { - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - } - } - }, - "libraries": { - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", - "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", - "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", - "path": "microsoft.aspnetcore.http.connections.client/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", - "path": "microsoft.aspnetcore.http.connections.common/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", - "path": "microsoft.aspnetcore.signalr.client/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", - "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", - "path": "microsoft.aspnetcore.signalr.common/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", - "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", - "path": "microsoft.bcl.asyncinterfaces/10.0.0", - "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", - "path": "microsoft.bcl.timeprovider/10.0.0", - "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", - "path": "microsoft.extensions.dependencyinjection/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", - "path": "microsoft.extensions.features/10.0.0", - "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", - "path": "microsoft.extensions.logging/10.0.0", - "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", - "path": "microsoft.extensions.logging.abstractions/10.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", - "path": "microsoft.extensions.options/10.0.0", - "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", - "path": "microsoft.extensions.primitives/10.0.0", - "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", - "path": "system.diagnostics.diagnosticsource/10.0.0", - "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", - "path": "system.io.pipelines/10.0.0", - "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", - "path": "system.net.serversentevents/10.0.0", - "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", - "path": "system.text.encodings.web/10.0.0", - "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" - }, - "System.Text.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", - "path": "system.text.json/10.0.0", - "hashPath": "system.text.json.10.0.0.nupkg.sha512" - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", - "path": "system.threading.channels/10.0.0", - "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" - } - } +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.IO.Pipelines/10.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Encodings.Web/10.0.0": { + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + }, + "runtimeTargets": { + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { + "rid": "browser", + "assetType": "runtime", + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Json/10.0.0": { + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Threading.Channels/10.0.0": { + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + } + } + }, + "libraries": { + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", + "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", + "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", + "path": "microsoft.aspnetcore.http.connections.client/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", + "path": "microsoft.aspnetcore.http.connections.common/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", + "path": "microsoft.aspnetcore.signalr.client/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", + "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", + "path": "microsoft.aspnetcore.signalr.common/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", + "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", + "path": "microsoft.bcl.asyncinterfaces/10.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", + "path": "microsoft.bcl.timeprovider/10.0.0", + "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", + "path": "microsoft.extensions.dependencyinjection/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", + "path": "microsoft.extensions.features/10.0.0", + "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", + "path": "microsoft.extensions.logging/10.0.0", + "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", + "path": "microsoft.extensions.logging.abstractions/10.0.0", + "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", + "path": "microsoft.extensions.options/10.0.0", + "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", + "path": "microsoft.extensions.primitives/10.0.0", + "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", + "path": "system.diagnostics.diagnosticsource/10.0.0", + "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", + "path": "system.io.pipelines/10.0.0", + "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", + "path": "system.net.serversentevents/10.0.0", + "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", + "path": "system.text.encodings.web/10.0.0", + "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" + }, + "System.Text.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", + "path": "system.text.json/10.0.0", + "hashPath": "system.text.json.10.0.0.nupkg.sha512" + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", + "path": "system.threading.channels/10.0.0", + "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.runtimeconfig.json b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.runtimeconfig.json index 62da401..bdec86a 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.runtimeconfig.json +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.designer.runtimeconfig.json @@ -1,25 +1,25 @@ -{ - "runtimeOptions": { - "tfm": "net8.0", - "frameworks": [ - { - "name": "Microsoft.NETCore.App", - "version": "8.0.0" - }, - { - "name": "Microsoft.WindowsDesktop.App", - "version": "8.0.0" - } - ], - "additionalProbingPaths": [ - "C:\\Users\\nanxun\\.dotnet\\store\\|arch|\\|tfm|", - "C:\\Users\\nanxun\\.nuget\\packages", - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configProperties": { - "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, - "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false, - "Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true - } - } +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.WindowsDesktop.App", + "version": "8.0.0" + } + ], + "additionalProbingPaths": [ + "C:\\Users\\nanxun\\.dotnet\\store\\|arch|\\|tfm|", + "C:\\Users\\nanxun\\.nuget\\packages", + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configProperties": { + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true, + "CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false, + "Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.genruntimeconfig.cache b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.genruntimeconfig.cache index ed70d1b..beb001a 100644 --- a/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.genruntimeconfig.cache +++ b/backend/SignalRTest/obj/Debug/net8.0-windows/SignalRTest.genruntimeconfig.cache @@ -1 +1 @@ -c05369691aaf31d105dcbffdf472a87fdbcb1c1844bdf44f71087b9d0141f9d6 +c05369691aaf31d105dcbffdf472a87fdbcb1c1844bdf44f71087b9d0141f9d6 diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/backend/SignalRTest/obj/Release/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs index 2217181..678fc5f 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +++ b/backend/SignalRTest/obj/Release/net8.0-windows/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -1,4 +1,4 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfo.cs b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfo.cs index 5050a24..e86e319 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfo.cs +++ b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfo.cs @@ -1,25 +1,25 @@ -//------------------------------------------------------------------------------ -// -// 此代码由工具生成。 -// 运行时版本:4.0.30319.42000 -// -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+219665d4657ce917f2ec72657b9e54ab4daccc10")] -[assembly: System.Reflection.AssemblyProductAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyTitleAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] -[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] -[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] - -// 由 MSBuild WriteCodeFragment 类生成。 - +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+219665d4657ce917f2ec72657b9e54ab4daccc10")] +[assembly: System.Reflection.AssemblyProductAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyTitleAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] +[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] +[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache index 4091985..f7abfd7 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.AssemblyInfoInputs.cache @@ -1 +1 @@ -6c95105ac76c9f3a2fc221cab5f1d5a22db152a0fc8b642ffb31000a29645355 +6c95105ac76c9f3a2fc221cab5f1d5a22db152a0fc8b642ffb31000a29645355 diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig index 9aa82f8..ab86a05 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig +++ b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig @@ -1,22 +1,22 @@ -is_global = true -build_property.ApplicationManifest = -build_property.StartupObject = -build_property.ApplicationDefaultFont = -build_property.ApplicationHighDpiMode = -build_property.ApplicationUseCompatibleTextRendering = -build_property.ApplicationVisualStyles = -build_property.TargetFramework = net8.0-windows -build_property.TargetPlatformMinVersion = 7.0 -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = SignalRTest -build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\SignalRTest\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.CsWinRTUseWindowsUIXamlProjections = false -build_property.EffectiveAnalysisLevelStyle = 8.0 -build_property.EnableCodeStyleSeverity = +is_global = true +build_property.ApplicationManifest = +build_property.StartupObject = +build_property.ApplicationDefaultFont = +build_property.ApplicationHighDpiMode = +build_property.ApplicationUseCompatibleTextRendering = +build_property.ApplicationVisualStyles = +build_property.TargetFramework = net8.0-windows +build_property.TargetPlatformMinVersion = 7.0 +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = SignalRTest +build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\SignalRTest\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GlobalUsings.g.cs b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GlobalUsings.g.cs index 84bbb89..fea4009 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GlobalUsings.g.cs +++ b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.GlobalUsings.g.cs @@ -1,10 +1,10 @@ -// -global using global::System; -global using global::System.Collections.Generic; -global using global::System.Drawing; -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; -global using global::System.Windows.Forms; +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.Drawing; +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; +global using global::System.Windows.Forms; diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache index a89f163..1872322 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -c0744805f016017646cd8ec4510e403b0f32b575ddd6972e8a72d1a8bab8cf46 +c0744805f016017646cd8ec4510e403b0f32b575ddd6972e8a72d1a8bab8cf46 diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt index 4fadf07..0930920 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt +++ b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.csproj.FileListAbsolute.txt @@ -1,41 +1,41 @@ -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.exe -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.deps.json -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.runtimeconfig.json -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.pdb -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.Connections.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Client.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.Core.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Protocols.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Bcl.AsyncInterfaces.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Bcl.TimeProvider.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.DependencyInjection.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.DependencyInjection.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Features.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Logging.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Logging.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Options.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Diagnostics.DiagnosticSource.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.IO.Pipelines.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Net.ServerSentEvents.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Text.Encodings.Web.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Text.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Threading.Channels.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\runtimes\browser\lib\net8.0\System.Text.Encodings.Web.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.csproj.AssemblyReference.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.Form1.resources -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.csproj.GenerateResource.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.GeneratedMSBuildEditorConfig.editorconfig -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.AssemblyInfoInputs.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.AssemblyInfo.cs -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.csproj.CoreCompileInputs.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRT.5CF90B77.Up2Date -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\refint\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.pdb -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.genruntimeconfig.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\ref\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.exe +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.deps.json +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.runtimeconfig.json +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\SignalRTest.pdb +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.Connections.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Client.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.Http.Connections.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Client.Core.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.AspNetCore.SignalR.Protocols.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Bcl.AsyncInterfaces.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Bcl.TimeProvider.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.DependencyInjection.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.DependencyInjection.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Features.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Logging.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Logging.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Options.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\Microsoft.Extensions.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Diagnostics.DiagnosticSource.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.IO.Pipelines.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Net.ServerSentEvents.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Text.Encodings.Web.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Text.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\System.Threading.Channels.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\runtimes\browser\lib\net8.0\System.Text.Encodings.Web.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.csproj.AssemblyReference.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.Form1.resources +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.csproj.GenerateResource.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.AssemblyInfoInputs.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.AssemblyInfo.cs +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.csproj.CoreCompileInputs.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRT.5CF90B77.Up2Date +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\refint\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.pdb +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\SignalRTest.genruntimeconfig.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\ref\SignalRTest.dll diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.genruntimeconfig.cache b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.genruntimeconfig.cache index afc3a0c..f14f743 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.genruntimeconfig.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/SignalRTest.genruntimeconfig.cache @@ -1 +1 @@ -730922d6fa16c413a1bc880e81bd425dd03f1fdba9d65be778f79d886ef5a309 +730922d6fa16c413a1bc880e81bd425dd03f1fdba9d65be778f79d886ef5a309 diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs index 2217181..678fc5f 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -1,4 +1,4 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/PublishOutputs.c7711f52c6.txt b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/PublishOutputs.c7711f52c6.txt index 7145286..5d4afd7 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/PublishOutputs.c7711f52c6.txt +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/PublishOutputs.c7711f52c6.txt @@ -1,7 +1,7 @@ -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\SignalRTest.pdb -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\D3DCompiler_47_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\PenImc_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\PresentationNative_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\vcruntime140_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\wpfgfx_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\SignalRTest.exe +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\SignalRTest.pdb +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\D3DCompiler_47_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\PenImc_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\PresentationNative_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\vcruntime140_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\wpfgfx_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\publish\win-x64\SignalRTest.exe diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfo.cs b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfo.cs index 5050a24..e86e319 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfo.cs +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfo.cs @@ -1,25 +1,25 @@ -//------------------------------------------------------------------------------ -// -// 此代码由工具生成。 -// 运行时版本:4.0.30319.42000 -// -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+219665d4657ce917f2ec72657b9e54ab4daccc10")] -[assembly: System.Reflection.AssemblyProductAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyTitleAttribute("SignalRTest")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] -[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] -[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] - -// 由 MSBuild WriteCodeFragment 类生成。 - +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+219665d4657ce917f2ec72657b9e54ab4daccc10")] +[assembly: System.Reflection.AssemblyProductAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyTitleAttribute("SignalRTest")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] +[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")] +[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfoInputs.cache b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfoInputs.cache index 4091985..f7abfd7 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfoInputs.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.AssemblyInfoInputs.cache @@ -1 +1 @@ -6c95105ac76c9f3a2fc221cab5f1d5a22db152a0fc8b642ffb31000a29645355 +6c95105ac76c9f3a2fc221cab5f1d5a22db152a0fc8b642ffb31000a29645355 diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig index 2040d7a..2e4e611 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GeneratedMSBuildEditorConfig.editorconfig @@ -1,26 +1,26 @@ -is_global = true -build_property.EnableAotAnalyzer = -build_property.EnableSingleFileAnalyzer = true -build_property.EnableTrimAnalyzer = -build_property.IncludeAllContentForSelfExtract = -build_property.ApplicationManifest = -build_property.StartupObject = -build_property.ApplicationDefaultFont = -build_property.ApplicationHighDpiMode = -build_property.ApplicationUseCompatibleTextRendering = -build_property.ApplicationVisualStyles = -build_property.TargetFramework = net8.0-windows -build_property.TargetPlatformMinVersion = 7.0 -build_property.UsingMicrosoftNETSdkWeb = -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = SignalRTest -build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\SignalRTest\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.CsWinRTUseWindowsUIXamlProjections = false -build_property.EffectiveAnalysisLevelStyle = 8.0 -build_property.EnableCodeStyleSeverity = +is_global = true +build_property.EnableAotAnalyzer = +build_property.EnableSingleFileAnalyzer = true +build_property.EnableTrimAnalyzer = +build_property.IncludeAllContentForSelfExtract = +build_property.ApplicationManifest = +build_property.StartupObject = +build_property.ApplicationDefaultFont = +build_property.ApplicationHighDpiMode = +build_property.ApplicationUseCompatibleTextRendering = +build_property.ApplicationVisualStyles = +build_property.TargetFramework = net8.0-windows +build_property.TargetPlatformMinVersion = 7.0 +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = SignalRTest +build_property.ProjectDir = C:\Users\nanxun\Documents\IM\backend\SignalRTest\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.CsWinRTUseWindowsUIXamlProjections = false +build_property.EffectiveAnalysisLevelStyle = 8.0 +build_property.EnableCodeStyleSeverity = diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GlobalUsings.g.cs b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GlobalUsings.g.cs index 84bbb89..fea4009 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GlobalUsings.g.cs +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.GlobalUsings.g.cs @@ -1,10 +1,10 @@ -// -global using global::System; -global using global::System.Collections.Generic; -global using global::System.Drawing; -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; -global using global::System.Windows.Forms; +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.Drawing; +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; +global using global::System.Windows.Forms; diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.CoreCompileInputs.cache b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.CoreCompileInputs.cache index a4e1e48..7f5f99a 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.CoreCompileInputs.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -daefb47b81d1e29c0f7a86bf1362a741ac410e35b5fa3d960ba984bda12732bf +daefb47b81d1e29c0f7a86bf1362a741ac410e35b5fa3d960ba984bda12732bf diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.FileListAbsolute.txt b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.FileListAbsolute.txt index ff5fa4c..071116e 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.FileListAbsolute.txt +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.csproj.FileListAbsolute.txt @@ -1,495 +1,495 @@ -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.exe -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.deps.json -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.runtimeconfig.json -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.pdb -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.Connections.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.Http.Connections.Client.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.Http.Connections.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Client.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Client.Core.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Protocols.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Bcl.AsyncInterfaces.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Bcl.TimeProvider.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.DependencyInjection.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.DependencyInjection.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Features.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Logging.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Logging.Abstractions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Options.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.DiagnosticSource.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Pipelines.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.ServerSentEvents.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encodings.Web.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Channels.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.CSharp.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.VisualBasic.Core.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.Registry.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.AppContext.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Buffers.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.Concurrent.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.Immutable.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.NonGeneric.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.Specialized.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.Annotations.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.DataAnnotations.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.EventBasedAsync.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.TypeConverter.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Configuration.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Console.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Core.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Data.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Data.DataSetExtensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Data.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Contracts.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Debug.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.FileVersionInfo.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Process.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.StackTrace.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.TextWriterTraceListener.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Tools.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.TraceSource.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Tracing.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Dynamic.Runtime.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Formats.Asn1.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Formats.Tar.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Globalization.Calendars.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Globalization.Extensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Globalization.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.Brotli.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.FileSystem.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.ZipFile.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.AccessControl.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.DriveInfo.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.Watcher.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.IsolatedStorage.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.MemoryMappedFiles.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Pipes.AccessControl.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Pipes.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.UnmanagedMemoryStream.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.Expressions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.Parallel.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.Queryable.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Memory.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Http.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Http.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.HttpListener.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Mail.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.NameResolution.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.NetworkInformation.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Ping.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Quic.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Requests.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Security.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.ServicePoint.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Sockets.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebClient.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebHeaderCollection.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebProxy.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebSockets.Client.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebSockets.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Numerics.Vectors.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Numerics.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ObjectModel.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.CoreLib.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.DataContractSerialization.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.Uri.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.Xml.Linq.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.Xml.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.DispatchProxy.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Emit.ILGeneration.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Emit.Lightweight.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Emit.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Extensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Metadata.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.TypeExtensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.Reader.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.ResourceManager.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.Writer.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.CompilerServices.Unsafe.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.CompilerServices.VisualC.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Extensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Handles.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.InteropServices.JavaScript.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.InteropServices.RuntimeInformation.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.InteropServices.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Intrinsics.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Loader.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Numerics.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Formatters.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Json.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Xml.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.AccessControl.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Claims.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Algorithms.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Cng.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Csp.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Encoding.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.OpenSsl.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.X509Certificates.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Principal.Windows.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Principal.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.SecureString.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ServiceModel.Web.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ServiceProcess.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encoding.CodePages.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encoding.Extensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encoding.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.RegularExpressions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Overlapped.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.Dataflow.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.Extensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.Parallel.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Thread.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.ThreadPool.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Timer.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Transactions.Local.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Transactions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ValueTuple.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Web.HttpUtility.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Web.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.Linq.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.ReaderWriter.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.Serialization.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XDocument.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XPath.XDocument.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XPath.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XmlDocument.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XmlSerializer.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscorlib.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\netstandard.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Accessibility.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\DirectWriteForwarder.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.VisualBasic.Forms.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.VisualBasic.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.Registry.AccessControl.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.SystemEvents.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationCore.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemCore.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemData.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemDrawing.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemXml.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemXmlLinq.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Aero.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Aero2.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.AeroLite.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Classic.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Luna.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Royale.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationUI.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ReachFramework.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.CodeDom.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Configuration.ConfigurationManager.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Design.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.EventLog.Messages.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.EventLog.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.PerformanceCounter.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.DirectoryServices.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.Common.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.Design.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Packaging.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Printing.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.Extensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Pkcs.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.ProtectedData.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Xml.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Permissions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.AccessControl.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Controls.Ribbon.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Extensions.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.Design.Editors.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.Design.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.Primitives.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Input.Manipulations.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Presentation.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xaml.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationClient.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationClientSideProviders.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationProvider.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationTypes.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\WindowsBase.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\WindowsFormsIntegration.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.DiaSymReader.Native.amd64.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.Native.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\clretwrc.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\clrgc.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\clrjit.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\coreclr.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\createdump.exe -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\hostfxr.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\hostpolicy.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscordaccore.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscordaccore_amd64_amd64_8.0.1925.36514.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscordbi.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscorrc.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\msquic.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\D3DCompiler_47_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PenImc_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationNative_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\vcruntime140_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\wpfgfx_cor3.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\Microsoft.VisualBasic.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\PresentationCore.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\PresentationFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\PresentationUI.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\ReachFramework.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Controls.Ribbon.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Forms.Design.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Forms.Primitives.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Forms.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Input.Manipulations.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Xaml.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationClient.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationClientSideProviders.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationProvider.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationTypes.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\WindowsBase.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\WindowsFormsIntegration.resources.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.csproj.AssemblyReference.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.Form1.resources -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.csproj.GenerateResource.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.GeneratedMSBuildEditorConfig.editorconfig -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.AssemblyInfoInputs.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.AssemblyInfo.cs -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.csproj.CoreCompileInputs.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRT.5CF90B77.Up2Date -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\refint\SignalRTest.dll -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.pdb -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.genruntimeconfig.cache -C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\ref\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.exe +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.deps.json +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.runtimeconfig.json +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\SignalRTest.pdb +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.Connections.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.Http.Connections.Client.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.Http.Connections.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Client.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Client.Core.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.AspNetCore.SignalR.Protocols.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Bcl.AsyncInterfaces.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Bcl.TimeProvider.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.DependencyInjection.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.DependencyInjection.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Features.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Logging.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Logging.Abstractions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Options.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Extensions.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.DiagnosticSource.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Pipelines.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.ServerSentEvents.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encodings.Web.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Channels.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.CSharp.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.VisualBasic.Core.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.Registry.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.AppContext.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Buffers.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.Concurrent.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.Immutable.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.NonGeneric.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.Specialized.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Collections.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.Annotations.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.DataAnnotations.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.EventBasedAsync.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.TypeConverter.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ComponentModel.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Configuration.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Console.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Core.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Data.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Data.DataSetExtensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Data.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Contracts.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Debug.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.FileVersionInfo.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Process.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.StackTrace.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.TextWriterTraceListener.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Tools.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.TraceSource.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.Tracing.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Dynamic.Runtime.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Formats.Asn1.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Formats.Tar.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Globalization.Calendars.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Globalization.Extensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Globalization.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.Brotli.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.FileSystem.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.ZipFile.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.AccessControl.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.DriveInfo.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.Watcher.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.FileSystem.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.IsolatedStorage.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.MemoryMappedFiles.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Pipes.AccessControl.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Pipes.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.UnmanagedMemoryStream.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.Expressions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.Parallel.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.Queryable.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Linq.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Memory.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Http.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Http.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.HttpListener.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Mail.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.NameResolution.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.NetworkInformation.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Ping.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Quic.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Requests.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Security.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.ServicePoint.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.Sockets.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebClient.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebHeaderCollection.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebProxy.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebSockets.Client.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.WebSockets.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Net.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Numerics.Vectors.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Numerics.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ObjectModel.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.CoreLib.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.DataContractSerialization.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.Uri.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.Xml.Linq.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Private.Xml.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.DispatchProxy.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Emit.ILGeneration.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Emit.Lightweight.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Emit.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Extensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Metadata.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.TypeExtensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Reflection.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.Reader.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.ResourceManager.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.Writer.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.CompilerServices.Unsafe.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.CompilerServices.VisualC.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Extensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Handles.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.InteropServices.JavaScript.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.InteropServices.RuntimeInformation.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.InteropServices.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Intrinsics.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Loader.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Numerics.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Formatters.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Json.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.Xml.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.Serialization.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Runtime.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.AccessControl.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Claims.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Algorithms.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Cng.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Csp.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Encoding.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.OpenSsl.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.X509Certificates.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Principal.Windows.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Principal.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.SecureString.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ServiceModel.Web.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ServiceProcess.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encoding.CodePages.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encoding.Extensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.Encoding.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Text.RegularExpressions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Overlapped.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.Dataflow.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.Extensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.Parallel.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Tasks.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Thread.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.ThreadPool.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.Timer.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Transactions.Local.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Transactions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.ValueTuple.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Web.HttpUtility.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Web.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.Linq.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.ReaderWriter.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.Serialization.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XDocument.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XPath.XDocument.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XPath.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XmlDocument.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.XmlSerializer.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xml.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscorlib.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\netstandard.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Accessibility.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\DirectWriteForwarder.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.VisualBasic.Forms.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.VisualBasic.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.Registry.AccessControl.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.Win32.SystemEvents.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationCore.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemCore.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemData.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemDrawing.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemXml.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework-SystemXmlLinq.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Aero.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Aero2.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.AeroLite.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Classic.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Luna.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.Royale.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationFramework.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationUI.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ReachFramework.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.CodeDom.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Configuration.ConfigurationManager.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Design.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.EventLog.Messages.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.EventLog.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Diagnostics.PerformanceCounter.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.DirectoryServices.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.Common.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.Design.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Drawing.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Packaging.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Printing.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Resources.Extensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Pkcs.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.ProtectedData.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Cryptography.Xml.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Security.Permissions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Threading.AccessControl.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Controls.Ribbon.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Extensions.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.Design.Editors.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.Design.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.Primitives.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Forms.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Input.Manipulations.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Windows.Presentation.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.Xaml.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationClient.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationClientSideProviders.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationProvider.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\UIAutomationTypes.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\WindowsBase.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\WindowsFormsIntegration.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\Microsoft.DiaSymReader.Native.amd64.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\System.IO.Compression.Native.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\clretwrc.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\clrgc.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\clrjit.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\coreclr.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\createdump.exe +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\hostfxr.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\hostpolicy.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscordaccore.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscordaccore_amd64_amd64_8.0.1925.36514.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscordbi.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\mscorrc.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\msquic.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\D3DCompiler_47_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PenImc_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\PresentationNative_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\vcruntime140_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\wpfgfx_cor3.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\cs\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\de\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\es\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\fr\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\it\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ja\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ko\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pl\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\pt-BR\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\ru\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\tr\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hans\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\Microsoft.VisualBasic.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\PresentationCore.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\PresentationFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\PresentationUI.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\ReachFramework.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Controls.Ribbon.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Forms.Design.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Forms.Primitives.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Forms.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Windows.Input.Manipulations.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\System.Xaml.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationClient.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationClientSideProviders.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationProvider.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\UIAutomationTypes.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\WindowsBase.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\bin\Release\net8.0-windows\win-x64\zh-Hant\WindowsFormsIntegration.resources.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.csproj.AssemblyReference.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.Form1.resources +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.csproj.GenerateResource.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.GeneratedMSBuildEditorConfig.editorconfig +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.AssemblyInfoInputs.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.AssemblyInfo.cs +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.csproj.CoreCompileInputs.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRT.5CF90B77.Up2Date +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\refint\SignalRTest.dll +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.pdb +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\SignalRTest.genruntimeconfig.cache +C:\Users\nanxun\Documents\IM\backend\SignalRTest\obj\Release\net8.0-windows\win-x64\ref\SignalRTest.dll diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.deps.json b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.deps.json index b88d09e..6e2519d 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.deps.json +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.deps.json @@ -1,1325 +1,1325 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v8.0/win-x64", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v8.0": {}, - ".NETCoreApp,Version=v8.0/win-x64": { - "SignalRTest/1.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": "10.0.0", - "Microsoft.NET.ILLink.Tasks": "8.0.19", - "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.19", - "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64": "8.0.19" - }, - "runtime": { - "SignalRTest.dll": {} - } - }, - "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { - "runtime": { - "Microsoft.CSharp.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "Microsoft.VisualBasic.Core.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.1925.36514" - }, - "Microsoft.Win32.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "Microsoft.Win32.Registry.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.AppContext.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Buffers.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.Concurrent.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.Immutable.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.NonGeneric.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.Specialized.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Collections.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.Annotations.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.DataAnnotations.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.EventBasedAsync.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.TypeConverter.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ComponentModel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Configuration.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Console.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Core.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Data.Common.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Data.DataSetExtensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Data.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Contracts.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Debug.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.FileVersionInfo.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Process.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.StackTrace.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.TextWriterTraceListener.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Tools.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.TraceSource.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.Tracing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Drawing.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Dynamic.Runtime.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Formats.Asn1.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Formats.Tar.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Globalization.Calendars.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Globalization.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Globalization.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.Brotli.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.FileSystem.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.ZipFile.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Compression.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.DriveInfo.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.Watcher.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.FileSystem.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.IsolatedStorage.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.MemoryMappedFiles.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Pipes.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.Pipes.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.UnmanagedMemoryStream.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.IO.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.Expressions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.Parallel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.Queryable.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Linq.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Memory.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Http.Json.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Http.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.HttpListener.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Mail.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.NameResolution.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.NetworkInformation.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Ping.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Quic.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Requests.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Security.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.ServicePoint.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.Sockets.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebClient.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebHeaderCollection.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebProxy.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebSockets.Client.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.WebSockets.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Net.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Numerics.Vectors.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Numerics.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ObjectModel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.CoreLib.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.DataContractSerialization.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.Uri.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.Xml.Linq.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Private.Xml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.DispatchProxy.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Emit.ILGeneration.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Emit.Lightweight.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Emit.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Metadata.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.TypeExtensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Reflection.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Resources.Reader.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Resources.ResourceManager.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Resources.Writer.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.CompilerServices.Unsafe.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.CompilerServices.VisualC.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Handles.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.InteropServices.JavaScript.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.InteropServices.RuntimeInformation.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.InteropServices.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Intrinsics.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Loader.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Numerics.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Formatters.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Json.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.Xml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.Serialization.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Runtime.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Claims.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Algorithms.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Cng.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Csp.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Encoding.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.OpenSsl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.X509Certificates.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Principal.Windows.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Principal.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.SecureString.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ServiceModel.Web.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ServiceProcess.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.Encoding.CodePages.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.Encoding.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.Encoding.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Text.RegularExpressions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Overlapped.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.Dataflow.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.Parallel.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Tasks.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Thread.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.ThreadPool.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.Timer.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Transactions.Local.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Transactions.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.ValueTuple.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Web.HttpUtility.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Web.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Windows.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.Linq.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.ReaderWriter.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.Serialization.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XDocument.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XPath.XDocument.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XPath.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XmlDocument.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.XmlSerializer.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Xml.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "mscorlib.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "netstandard.dll": { - "assemblyVersion": "2.1.0.0", - "fileVersion": "8.0.1925.36514" - } - } - }, - "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { - "runtime": { - "Accessibility.dll": { - "assemblyVersion": "4.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "DirectWriteForwarder.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "Microsoft.VisualBasic.Forms.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "Microsoft.VisualBasic.dll": { - "assemblyVersion": "10.1.0.0", - "fileVersion": "8.0.1925.36703" - }, - "Microsoft.Win32.Registry.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "Microsoft.Win32.SystemEvents.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "PresentationCore.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemCore.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemData.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemDrawing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemXml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework-SystemXmlLinq.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Aero.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Aero2.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.AeroLite.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Classic.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Luna.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.Royale.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationFramework.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "PresentationUI.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "ReachFramework.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.CodeDom.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Configuration.ConfigurationManager.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Design.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Diagnostics.EventLog.Messages.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "0.0.0.0" - }, - "System.Diagnostics.EventLog.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Diagnostics.PerformanceCounter.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.DirectoryServices.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Drawing.Common.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Drawing.Design.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Drawing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.IO.Packaging.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Printing.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Resources.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Pkcs.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.ProtectedData.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Cryptography.Xml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Security.Permissions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Threading.AccessControl.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Windows.Controls.Ribbon.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Windows.Extensions.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36514" - }, - "System.Windows.Forms.Design.Editors.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Forms.Design.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Forms.Primitives.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Forms.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36703" - }, - "System.Windows.Input.Manipulations.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Windows.Presentation.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "System.Xaml.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationClient.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationClientSideProviders.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationProvider.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "UIAutomationTypes.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "WindowsBase.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - }, - "WindowsFormsIntegration.dll": { - "assemblyVersion": "8.0.0.0", - "fileVersion": "8.0.1925.36811" - } - }, - "native": { - "D3DCompiler_47_cor3.dll": { - "fileVersion": "10.0.22621.3233" - }, - "PenImc_cor3.dll": { - "fileVersion": "8.0.1925.36811" - }, - "PresentationNative_cor3.dll": { - "fileVersion": "8.0.25.16802" - }, - "vcruntime140_cor3.dll": { - "fileVersion": "14.42.34438.0" - }, - "wpfgfx_cor3.dll": { - "fileVersion": "8.0.1925.36811" - } - } - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "Microsoft.NET.ILLink.Tasks/8.0.19": {}, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.IO.Pipelines/10.0.0": { - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Encodings.Web/10.0.0": { - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Text.Json/10.0.0": { - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - }, - "System.Threading.Channels/10.0.0": { - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "assemblyVersion": "10.0.0.0", - "fileVersion": "10.0.25.52411" - } - } - } - } - }, - "libraries": { - "SignalRTest/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { - "type": "runtimepack", - "serviceable": false, - "sha512": "" - }, - "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { - "type": "runtimepack", - "serviceable": false, - "sha512": "" - }, - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", - "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", - "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", - "path": "microsoft.aspnetcore.http.connections.client/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", - "path": "microsoft.aspnetcore.http.connections.common/10.0.0", - "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", - "path": "microsoft.aspnetcore.signalr.client/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", - "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", - "path": "microsoft.aspnetcore.signalr.common/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", - "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", - "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", - "path": "microsoft.bcl.asyncinterfaces/10.0.0", - "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", - "path": "microsoft.bcl.timeprovider/10.0.0", - "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", - "path": "microsoft.extensions.dependencyinjection/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", - "path": "microsoft.extensions.features/10.0.0", - "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", - "path": "microsoft.extensions.logging/10.0.0", - "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", - "path": "microsoft.extensions.logging.abstractions/10.0.0", - "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", - "path": "microsoft.extensions.options/10.0.0", - "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", - "path": "microsoft.extensions.primitives/10.0.0", - "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" - }, - "Microsoft.NET.ILLink.Tasks/8.0.19": { - "type": "package", - "serviceable": true, - "sha512": "sha512-IhHf+zeZiaE5EXRyxILd4qM+Hj9cxV3sa8MpzZgeEhpvaG3a1VEGF6UCaPFLO44Kua3JkLKluE0SWVamS50PlA==", - "path": "microsoft.net.illink.tasks/8.0.19", - "hashPath": "microsoft.net.illink.tasks.8.0.19.nupkg.sha512" - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", - "path": "system.diagnostics.diagnosticsource/10.0.0", - "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", - "path": "system.io.pipelines/10.0.0", - "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", - "path": "system.net.serversentevents/10.0.0", - "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", - "path": "system.text.encodings.web/10.0.0", - "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" - }, - "System.Text.Json/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", - "path": "system.text.json/10.0.0", - "hashPath": "system.text.json.10.0.0.nupkg.sha512" - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", - "path": "system.threading.channels/10.0.0", - "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" - } - }, - "runtimes": { - "win-x64": [ - "win", - "any", - "base" - ] - } +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0/win-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": {}, + ".NETCoreApp,Version=v8.0/win-x64": { + "SignalRTest/1.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": "10.0.0", + "Microsoft.NET.ILLink.Tasks": "8.0.19", + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.19", + "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64": "8.0.19" + }, + "runtime": { + "SignalRTest.dll": {} + } + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { + "runtime": { + "Microsoft.CSharp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1925.36514" + }, + "Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "Microsoft.Win32.Registry.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.AppContext.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Buffers.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.Concurrent.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.Immutable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.NonGeneric.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.Specialized.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Collections.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.Annotations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ComponentModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Console.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Data.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Data.DataSetExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Contracts.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Debug.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Process.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Tools.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.Tracing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Drawing.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Dynamic.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Formats.Asn1.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Formats.Tar.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Globalization.Calendars.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Globalization.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Globalization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.Brotli.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Compression.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.FileSystem.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.IsolatedStorage.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.Pipes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.IO.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.Expressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.Queryable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Http.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Http.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.HttpListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Mail.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.NameResolution.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.NetworkInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Ping.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Quic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Requests.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Security.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.ServicePoint.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.Sockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebSockets.Client.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.WebSockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Numerics.Vectors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ObjectModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.CoreLib.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.DataContractSerialization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.Uri.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.Xml.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Private.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Emit.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Metadata.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Reflection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Resources.Reader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Resources.ResourceManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Resources.Writer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Handles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.InteropServices.JavaScript.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.InteropServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Intrinsics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Loader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Numerics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Claims.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Principal.Windows.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Principal.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.SecureString.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Text.RegularExpressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Overlapped.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Tasks.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Thread.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.ThreadPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.Timer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Transactions.Local.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.ValueTuple.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Web.HttpUtility.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.ReaderWriter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XPath.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XmlDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.XmlSerializer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "8.0.1925.36514" + } + } + }, + "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { + "runtime": { + "Accessibility.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "DirectWriteForwarder.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "Microsoft.VisualBasic.Forms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.1.0.0", + "fileVersion": "8.0.1925.36703" + }, + "Microsoft.Win32.Registry.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "Microsoft.Win32.SystemEvents.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "PresentationCore.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemCore.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemData.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemDrawing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemXml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework-SystemXmlLinq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Aero.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Aero2.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.AeroLite.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Classic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Luna.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.Royale.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationFramework.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "PresentationUI.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "ReachFramework.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.CodeDom.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Configuration.ConfigurationManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Design.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Diagnostics.EventLog.Messages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "0.0.0.0" + }, + "System.Diagnostics.EventLog.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Diagnostics.PerformanceCounter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.DirectoryServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Drawing.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Drawing.Design.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Drawing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.IO.Packaging.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Printing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Resources.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Pkcs.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Cryptography.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Security.Permissions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Threading.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Windows.Controls.Ribbon.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Windows.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36514" + }, + "System.Windows.Forms.Design.Editors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Forms.Design.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Forms.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Forms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36703" + }, + "System.Windows.Input.Manipulations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Windows.Presentation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "System.Xaml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationClientSideProviders.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationProvider.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "UIAutomationTypes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "WindowsBase.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + }, + "WindowsFormsIntegration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1925.36811" + } + }, + "native": { + "D3DCompiler_47_cor3.dll": { + "fileVersion": "10.0.22621.3233" + }, + "PenImc_cor3.dll": { + "fileVersion": "8.0.1925.36811" + }, + "PresentationNative_cor3.dll": { + "fileVersion": "8.0.25.16802" + }, + "vcruntime140_cor3.dll": { + "fileVersion": "14.42.34438.0" + }, + "wpfgfx_cor3.dll": { + "fileVersion": "8.0.1925.36811" + } + } + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "Microsoft.NET.ILLink.Tasks/8.0.19": {}, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.IO.Pipelines/10.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Encodings.Web/10.0.0": { + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Text.Json/10.0.0": { + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + }, + "System.Threading.Channels/10.0.0": { + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.25.52411" + } + } + } + } + }, + "libraries": { + "SignalRTest/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.19": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64/8.0.19": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", + "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", + "hashPath": "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", + "path": "microsoft.aspnetcore.http.connections.client/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", + "path": "microsoft.aspnetcore.http.connections.common/10.0.0", + "hashPath": "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", + "path": "microsoft.aspnetcore.signalr.client/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", + "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", + "path": "microsoft.aspnetcore.signalr.common/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512" + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", + "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", + "hashPath": "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", + "path": "microsoft.bcl.asyncinterfaces/10.0.0", + "hashPath": "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512" + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", + "path": "microsoft.bcl.timeprovider/10.0.0", + "hashPath": "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", + "path": "microsoft.extensions.dependencyinjection/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", + "path": "microsoft.extensions.features/10.0.0", + "hashPath": "microsoft.extensions.features.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", + "path": "microsoft.extensions.logging/10.0.0", + "hashPath": "microsoft.extensions.logging.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", + "path": "microsoft.extensions.logging.abstractions/10.0.0", + "hashPath": "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", + "path": "microsoft.extensions.options/10.0.0", + "hashPath": "microsoft.extensions.options.10.0.0.nupkg.sha512" + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", + "path": "microsoft.extensions.primitives/10.0.0", + "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" + }, + "Microsoft.NET.ILLink.Tasks/8.0.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IhHf+zeZiaE5EXRyxILd4qM+Hj9cxV3sa8MpzZgeEhpvaG3a1VEGF6UCaPFLO44Kua3JkLKluE0SWVamS50PlA==", + "path": "microsoft.net.illink.tasks/8.0.19", + "hashPath": "microsoft.net.illink.tasks.8.0.19.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", + "path": "system.diagnostics.diagnosticsource/10.0.0", + "hashPath": "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512" + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", + "path": "system.io.pipelines/10.0.0", + "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", + "path": "system.net.serversentevents/10.0.0", + "hashPath": "system.net.serversentevents.10.0.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", + "path": "system.text.encodings.web/10.0.0", + "hashPath": "system.text.encodings.web.10.0.0.nupkg.sha512" + }, + "System.Text.Json/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", + "path": "system.text.json/10.0.0", + "hashPath": "system.text.json.10.0.0.nupkg.sha512" + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", + "path": "system.threading.channels/10.0.0", + "hashPath": "system.threading.channels.10.0.0.nupkg.sha512" + } + }, + "runtimes": { + "win-x64": [ + "win", + "any", + "base" + ] + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genbundle.cache b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genbundle.cache index 5b491f2..e24f058 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genbundle.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genbundle.cache @@ -1 +1 @@ -f5ec142e4205efa4e2a47deb98b16a53a730a2e2889eb06a1b8d2cf783369ecb +f5ec142e4205efa4e2a47deb98b16a53a730a2e2889eb06a1b8d2cf783369ecb diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genpublishdeps.cache b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genpublishdeps.cache index e3cfe8f..59ab520 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genpublishdeps.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genpublishdeps.cache @@ -1 +1 @@ -fd0643ce84d5db8d093a96fb4a51a64ab36d090f48e974c315bcd467642d24cb +fd0643ce84d5db8d093a96fb4a51a64ab36d090f48e974c315bcd467642d24cb diff --git a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genruntimeconfig.cache b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genruntimeconfig.cache index 0fd30c9..8385c1a 100644 --- a/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genruntimeconfig.cache +++ b/backend/SignalRTest/obj/Release/net8.0-windows/win-x64/SignalRTest.genruntimeconfig.cache @@ -1 +1 @@ -a51d30e150bdb740388f5f5acc59cb2abb41798f409c2d9c6e00372e67cc3428 +a51d30e150bdb740388f5f5acc59cb2abb41798f409c2d9c6e00372e67cc3428 diff --git a/backend/SignalRTest/obj/SignalRTest.csproj.nuget.dgspec.json b/backend/SignalRTest/obj/SignalRTest.csproj.nuget.dgspec.json index b2577f0..b0ba274 100644 --- a/backend/SignalRTest/obj/SignalRTest.csproj.nuget.dgspec.json +++ b/backend/SignalRTest/obj/SignalRTest.csproj.nuget.dgspec.json @@ -1,83 +1,83 @@ -{ - "format": 1, - "restore": { - "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": {} - }, - "projects": { - "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "projectName": "SignalRTest", - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", - "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\nanxun\\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-windows" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.300" - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": { - "target": "Package", - "version": "[10.0.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - }, - "Microsoft.WindowsDesktop.App.WindowsForms": { - "privateAssets": "none" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" - } - } - } - } +{ + "format": 1, + "restore": { + "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": {} + }, + "projects": { + "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "projectName": "SignalRTest", + "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", + "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\nanxun\\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-windows" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": { + "target": "Package", + "version": "[10.0.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + }, + "Microsoft.WindowsDesktop.App.WindowsForms": { + "privateAssets": "none" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.props b/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.props index 8dc3638..66c3511 100644 --- a/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.props +++ b/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.props @@ -1,16 +1,16 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - $(UserProfile)\.nuget\packages\ - C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages - PackageReference - 6.14.1 - - - - - + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.14.1 + + + + + \ No newline at end of file diff --git a/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.targets b/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.targets index 1437cbf..9952526 100644 --- a/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.targets +++ b/backend/SignalRTest/obj/SignalRTest.csproj.nuget.g.targets @@ -1,8 +1,8 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/backend/SignalRTest/obj/project.assets.json b/backend/SignalRTest/obj/project.assets.json index 82a7344..64310b8 100644 --- a/backend/SignalRTest/obj/project.assets.json +++ b/backend/SignalRTest/obj/project.assets.json @@ -1,1153 +1,1153 @@ -{ - "version": 3, - "targets": { - "net8.0-windows7.0": { - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - }, - "runtimeTargets": { - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { - "assetType": "runtime", - "rid": "browser" - } - } - }, - "System.Text.Json/10.0.0": { - "type": "package", - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "compile": { - "lib/net8.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/System.Text.Json.targets": {} - } - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - } - } - }, - "libraries": { - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "sha512": "MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", - "type": "package", - "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.xml", - "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.xml", - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.xml", - "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.connections.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "sha512": "7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", - "type": "package", - "path": "microsoft.aspnetcore.http.connections.client/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.xml", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.xml", - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.xml", - "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.http.connections.client.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "sha512": "VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", - "type": "package", - "path": "microsoft.aspnetcore.http.connections.common/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.dll", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.xml", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.dll", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.xml", - "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.http.connections.common.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "sha512": "XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.client/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.xml", - "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.client.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "sha512": "MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.client.core.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "sha512": "pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.common/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Common.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Common.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.xml", - "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.common.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "sha512": "L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", - "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.protocols.json.nuspec" - ] - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "sha512": "vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", - "type": "package", - "path": "microsoft.bcl.asyncinterfaces/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", - "buildTransitive/net462/_._", - "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", - "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", - "microsoft.bcl.asyncinterfaces.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "sha512": "bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", - "type": "package", - "path": "microsoft.bcl.timeprovider/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Bcl.TimeProvider.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Bcl.TimeProvider.targets", - "lib/net462/Microsoft.Bcl.TimeProvider.dll", - "lib/net462/Microsoft.Bcl.TimeProvider.xml", - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll", - "lib/net8.0/Microsoft.Bcl.TimeProvider.xml", - "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.dll", - "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.xml", - "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", - "microsoft.bcl.timeprovider.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "sha512": "f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", - "type": "package", - "path": "microsoft.extensions.dependencyinjection/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/net462/Microsoft.Extensions.DependencyInjection.dll", - "lib/net462/Microsoft.Extensions.DependencyInjection.xml", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", - "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", - "microsoft.extensions.dependencyinjection.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "sha512": "L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", - "type": "package", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", - "microsoft.extensions.dependencyinjection.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Features/10.0.0": { - "sha512": "kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", - "type": "package", - "path": "microsoft.extensions.features/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.Extensions.Features.dll", - "lib/net10.0/Microsoft.Extensions.Features.xml", - "lib/net462/Microsoft.Extensions.Features.dll", - "lib/net462/Microsoft.Extensions.Features.xml", - "lib/netstandard2.0/Microsoft.Extensions.Features.dll", - "lib/netstandard2.0/Microsoft.Extensions.Features.xml", - "microsoft.extensions.features.10.0.0.nupkg.sha512", - "microsoft.extensions.features.nuspec" - ] - }, - "Microsoft.Extensions.Logging/10.0.0": { - "sha512": "BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", - "type": "package", - "path": "microsoft.extensions.logging/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Logging.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", - "lib/net10.0/Microsoft.Extensions.Logging.dll", - "lib/net10.0/Microsoft.Extensions.Logging.xml", - "lib/net462/Microsoft.Extensions.Logging.dll", - "lib/net462/Microsoft.Extensions.Logging.xml", - "lib/net8.0/Microsoft.Extensions.Logging.dll", - "lib/net8.0/Microsoft.Extensions.Logging.xml", - "lib/net9.0/Microsoft.Extensions.Logging.dll", - "lib/net9.0/Microsoft.Extensions.Logging.xml", - "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", - "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", - "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", - "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", - "microsoft.extensions.logging.10.0.0.nupkg.sha512", - "microsoft.extensions.logging.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "sha512": "FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", - "type": "package", - "path": "microsoft.extensions.logging.abstractions/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", - "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", - "microsoft.extensions.logging.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Options/10.0.0": { - "sha512": "8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", - "type": "package", - "path": "microsoft.extensions.options/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Options.targets", - "buildTransitive/net462/Microsoft.Extensions.Options.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", - "lib/net10.0/Microsoft.Extensions.Options.dll", - "lib/net10.0/Microsoft.Extensions.Options.xml", - "lib/net462/Microsoft.Extensions.Options.dll", - "lib/net462/Microsoft.Extensions.Options.xml", - "lib/net8.0/Microsoft.Extensions.Options.dll", - "lib/net8.0/Microsoft.Extensions.Options.xml", - "lib/net9.0/Microsoft.Extensions.Options.dll", - "lib/net9.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.0/Microsoft.Extensions.Options.dll", - "lib/netstandard2.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.1/Microsoft.Extensions.Options.dll", - "lib/netstandard2.1/Microsoft.Extensions.Options.xml", - "microsoft.extensions.options.10.0.0.nupkg.sha512", - "microsoft.extensions.options.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "sha512": "inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", - "type": "package", - "path": "microsoft.extensions.primitives/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", - "lib/net10.0/Microsoft.Extensions.Primitives.dll", - "lib/net10.0/Microsoft.Extensions.Primitives.xml", - "lib/net462/Microsoft.Extensions.Primitives.dll", - "lib/net462/Microsoft.Extensions.Primitives.xml", - "lib/net8.0/Microsoft.Extensions.Primitives.dll", - "lib/net8.0/Microsoft.Extensions.Primitives.xml", - "lib/net9.0/Microsoft.Extensions.Primitives.dll", - "lib/net9.0/Microsoft.Extensions.Primitives.xml", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", - "microsoft.extensions.primitives.10.0.0.nupkg.sha512", - "microsoft.extensions.primitives.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "sha512": "0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", - "type": "package", - "path": "system.diagnostics.diagnosticsource/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", - "lib/net10.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net10.0/System.Diagnostics.DiagnosticSource.xml", - "lib/net462/System.Diagnostics.DiagnosticSource.dll", - "lib/net462/System.Diagnostics.DiagnosticSource.xml", - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net8.0/System.Diagnostics.DiagnosticSource.xml", - "lib/net9.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net9.0/System.Diagnostics.DiagnosticSource.xml", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", - "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", - "system.diagnostics.diagnosticsource.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.IO.Pipelines/10.0.0": { - "sha512": "M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", - "type": "package", - "path": "system.io.pipelines/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.IO.Pipelines.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", - "lib/net10.0/System.IO.Pipelines.dll", - "lib/net10.0/System.IO.Pipelines.xml", - "lib/net462/System.IO.Pipelines.dll", - "lib/net462/System.IO.Pipelines.xml", - "lib/net8.0/System.IO.Pipelines.dll", - "lib/net8.0/System.IO.Pipelines.xml", - "lib/net9.0/System.IO.Pipelines.dll", - "lib/net9.0/System.IO.Pipelines.xml", - "lib/netstandard2.0/System.IO.Pipelines.dll", - "lib/netstandard2.0/System.IO.Pipelines.xml", - "system.io.pipelines.10.0.0.nupkg.sha512", - "system.io.pipelines.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Net.ServerSentEvents/10.0.0": { - "sha512": "zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", - "type": "package", - "path": "system.net.serversentevents/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Net.ServerSentEvents.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Net.ServerSentEvents.targets", - "lib/net10.0/System.Net.ServerSentEvents.dll", - "lib/net10.0/System.Net.ServerSentEvents.xml", - "lib/net462/System.Net.ServerSentEvents.dll", - "lib/net462/System.Net.ServerSentEvents.xml", - "lib/net8.0/System.Net.ServerSentEvents.dll", - "lib/net8.0/System.Net.ServerSentEvents.xml", - "lib/net9.0/System.Net.ServerSentEvents.dll", - "lib/net9.0/System.Net.ServerSentEvents.xml", - "lib/netstandard2.0/System.Net.ServerSentEvents.dll", - "lib/netstandard2.0/System.Net.ServerSentEvents.xml", - "system.net.serversentevents.10.0.0.nupkg.sha512", - "system.net.serversentevents.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Text.Encodings.Web/10.0.0": { - "sha512": "257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", - "type": "package", - "path": "system.text.encodings.web/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Text.Encodings.Web.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets", - "lib/net10.0/System.Text.Encodings.Web.dll", - "lib/net10.0/System.Text.Encodings.Web.xml", - "lib/net462/System.Text.Encodings.Web.dll", - "lib/net462/System.Text.Encodings.Web.xml", - "lib/net8.0/System.Text.Encodings.Web.dll", - "lib/net8.0/System.Text.Encodings.Web.xml", - "lib/net9.0/System.Text.Encodings.Web.dll", - "lib/net9.0/System.Text.Encodings.Web.xml", - "lib/netstandard2.0/System.Text.Encodings.Web.dll", - "lib/netstandard2.0/System.Text.Encodings.Web.xml", - "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.dll", - "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.xml", - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll", - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml", - "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.dll", - "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.xml", - "runtimes/win/lib/net9.0/System.Text.Encodings.Web.dll", - "runtimes/win/lib/net9.0/System.Text.Encodings.Web.xml", - "system.text.encodings.web.10.0.0.nupkg.sha512", - "system.text.encodings.web.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Text.Json/10.0.0": { - "sha512": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", - "type": "package", - "path": "system.text.json/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "buildTransitive/net461/System.Text.Json.targets", - "buildTransitive/net462/System.Text.Json.targets", - "buildTransitive/net8.0/System.Text.Json.targets", - "buildTransitive/netcoreapp2.0/System.Text.Json.targets", - "buildTransitive/netstandard2.0/System.Text.Json.targets", - "lib/net10.0/System.Text.Json.dll", - "lib/net10.0/System.Text.Json.xml", - "lib/net462/System.Text.Json.dll", - "lib/net462/System.Text.Json.xml", - "lib/net8.0/System.Text.Json.dll", - "lib/net8.0/System.Text.Json.xml", - "lib/net9.0/System.Text.Json.dll", - "lib/net9.0/System.Text.Json.xml", - "lib/netstandard2.0/System.Text.Json.dll", - "lib/netstandard2.0/System.Text.Json.xml", - "system.text.json.10.0.0.nupkg.sha512", - "system.text.json.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Threading.Channels/10.0.0": { - "sha512": "fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", - "type": "package", - "path": "system.threading.channels/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Threading.Channels.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", - "lib/net10.0/System.Threading.Channels.dll", - "lib/net10.0/System.Threading.Channels.xml", - "lib/net462/System.Threading.Channels.dll", - "lib/net462/System.Threading.Channels.xml", - "lib/net8.0/System.Threading.Channels.dll", - "lib/net8.0/System.Threading.Channels.xml", - "lib/net9.0/System.Threading.Channels.dll", - "lib/net9.0/System.Threading.Channels.xml", - "lib/netstandard2.0/System.Threading.Channels.dll", - "lib/netstandard2.0/System.Threading.Channels.xml", - "lib/netstandard2.1/System.Threading.Channels.dll", - "lib/netstandard2.1/System.Threading.Channels.xml", - "system.threading.channels.10.0.0.nupkg.sha512", - "system.threading.channels.nuspec", - "useSharedDesignerContext.txt" - ] - } - }, - "projectFileDependencyGroups": { - "net8.0-windows7.0": [ - "Microsoft.AspNetCore.SignalR.Client >= 10.0.0" - ] - }, - "packageFolders": { - "C:\\Users\\nanxun\\.nuget\\packages\\": {}, - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "projectName": "SignalRTest", - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", - "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\nanxun\\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-windows" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.300" - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": { - "target": "Package", - "version": "[10.0.0, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - }, - "Microsoft.WindowsDesktop.App.WindowsForms": { - "privateAssets": "none" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" - } - } - } +{ + "version": 3, + "targets": { + "net8.0-windows7.0": { + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + }, + "runtimeTargets": { + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { + "assetType": "runtime", + "rid": "browser" + } + } + }, + "System.Text.Json/10.0.0": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "compile": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/System.Text.Json.targets": {} + } + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + } + } + }, + "libraries": { + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "sha512": "MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", + "type": "package", + "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.xml", + "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.connections.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "sha512": "7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", + "type": "package", + "path": "microsoft.aspnetcore.http.connections.client/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.xml", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.xml", + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.xml", + "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.http.connections.client.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "sha512": "VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", + "type": "package", + "path": "microsoft.aspnetcore.http.connections.common/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.dll", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.xml", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.dll", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.xml", + "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.http.connections.common.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "sha512": "XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.client/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.xml", + "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.client.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "sha512": "MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.client.core.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "sha512": "pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.common/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Common.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Common.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.xml", + "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.common.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "sha512": "L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", + "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.protocols.json.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "sha512": "vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", + "buildTransitive/net462/_._", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "sha512": "bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", + "type": "package", + "path": "microsoft.bcl.timeprovider/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.TimeProvider.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Bcl.TimeProvider.targets", + "lib/net462/Microsoft.Bcl.TimeProvider.dll", + "lib/net462/Microsoft.Bcl.TimeProvider.xml", + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll", + "lib/net8.0/Microsoft.Bcl.TimeProvider.xml", + "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.dll", + "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.xml", + "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", + "microsoft.bcl.timeprovider.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "sha512": "f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "sha512": "L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Features/10.0.0": { + "sha512": "kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", + "type": "package", + "path": "microsoft.extensions.features/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.Extensions.Features.dll", + "lib/net10.0/Microsoft.Extensions.Features.xml", + "lib/net462/Microsoft.Extensions.Features.dll", + "lib/net462/Microsoft.Extensions.Features.xml", + "lib/netstandard2.0/Microsoft.Extensions.Features.dll", + "lib/netstandard2.0/Microsoft.Extensions.Features.xml", + "microsoft.extensions.features.10.0.0.nupkg.sha512", + "microsoft.extensions.features.nuspec" + ] + }, + "Microsoft.Extensions.Logging/10.0.0": { + "sha512": "BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", + "type": "package", + "path": "microsoft.extensions.logging/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net10.0/Microsoft.Extensions.Logging.dll", + "lib/net10.0/Microsoft.Extensions.Logging.xml", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/net9.0/Microsoft.Extensions.Logging.dll", + "lib/net9.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.10.0.0.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "sha512": "FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/10.0.0": { + "sha512": "8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", + "type": "package", + "path": "microsoft.extensions.options/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net10.0/Microsoft.Extensions.Options.dll", + "lib/net10.0/Microsoft.Extensions.Options.xml", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/net9.0/Microsoft.Extensions.Options.dll", + "lib/net9.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.10.0.0.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "sha512": "inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", + "type": "package", + "path": "microsoft.extensions.primitives/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net10.0/Microsoft.Extensions.Primitives.dll", + "lib/net10.0/Microsoft.Extensions.Primitives.xml", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/net9.0/Microsoft.Extensions.Primitives.dll", + "lib/net9.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.10.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "sha512": "0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", + "type": "package", + "path": "system.diagnostics.diagnosticsource/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", + "lib/net10.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net10.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net462/System.Diagnostics.DiagnosticSource.dll", + "lib/net462/System.Diagnostics.DiagnosticSource.xml", + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net8.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net9.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net9.0/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", + "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.IO.Pipelines/10.0.0": { + "sha512": "M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", + "type": "package", + "path": "system.io.pipelines/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Pipelines.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "lib/net10.0/System.IO.Pipelines.dll", + "lib/net10.0/System.IO.Pipelines.xml", + "lib/net462/System.IO.Pipelines.dll", + "lib/net462/System.IO.Pipelines.xml", + "lib/net8.0/System.IO.Pipelines.dll", + "lib/net8.0/System.IO.Pipelines.xml", + "lib/net9.0/System.IO.Pipelines.dll", + "lib/net9.0/System.IO.Pipelines.xml", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.xml", + "system.io.pipelines.10.0.0.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Net.ServerSentEvents/10.0.0": { + "sha512": "zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", + "type": "package", + "path": "system.net.serversentevents/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Net.ServerSentEvents.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Net.ServerSentEvents.targets", + "lib/net10.0/System.Net.ServerSentEvents.dll", + "lib/net10.0/System.Net.ServerSentEvents.xml", + "lib/net462/System.Net.ServerSentEvents.dll", + "lib/net462/System.Net.ServerSentEvents.xml", + "lib/net8.0/System.Net.ServerSentEvents.dll", + "lib/net8.0/System.Net.ServerSentEvents.xml", + "lib/net9.0/System.Net.ServerSentEvents.dll", + "lib/net9.0/System.Net.ServerSentEvents.xml", + "lib/netstandard2.0/System.Net.ServerSentEvents.dll", + "lib/netstandard2.0/System.Net.ServerSentEvents.xml", + "system.net.serversentevents.10.0.0.nupkg.sha512", + "system.net.serversentevents.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Encodings.Web/10.0.0": { + "sha512": "257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", + "type": "package", + "path": "system.text.encodings.web/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Text.Encodings.Web.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets", + "lib/net10.0/System.Text.Encodings.Web.dll", + "lib/net10.0/System.Text.Encodings.Web.xml", + "lib/net462/System.Text.Encodings.Web.dll", + "lib/net462/System.Text.Encodings.Web.xml", + "lib/net8.0/System.Text.Encodings.Web.dll", + "lib/net8.0/System.Text.Encodings.Web.xml", + "lib/net9.0/System.Text.Encodings.Web.dll", + "lib/net9.0/System.Text.Encodings.Web.xml", + "lib/netstandard2.0/System.Text.Encodings.Web.dll", + "lib/netstandard2.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml", + "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.dll", + "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.xml", + "runtimes/win/lib/net9.0/System.Text.Encodings.Web.dll", + "runtimes/win/lib/net9.0/System.Text.Encodings.Web.xml", + "system.text.encodings.web.10.0.0.nupkg.sha512", + "system.text.encodings.web.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Json/10.0.0": { + "sha512": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", + "type": "package", + "path": "system.text.json/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "buildTransitive/net461/System.Text.Json.targets", + "buildTransitive/net462/System.Text.Json.targets", + "buildTransitive/net8.0/System.Text.Json.targets", + "buildTransitive/netcoreapp2.0/System.Text.Json.targets", + "buildTransitive/netstandard2.0/System.Text.Json.targets", + "lib/net10.0/System.Text.Json.dll", + "lib/net10.0/System.Text.Json.xml", + "lib/net462/System.Text.Json.dll", + "lib/net462/System.Text.Json.xml", + "lib/net8.0/System.Text.Json.dll", + "lib/net8.0/System.Text.Json.xml", + "lib/net9.0/System.Text.Json.dll", + "lib/net9.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.10.0.0.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.Channels/10.0.0": { + "sha512": "fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", + "type": "package", + "path": "system.threading.channels/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Threading.Channels.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", + "lib/net10.0/System.Threading.Channels.dll", + "lib/net10.0/System.Threading.Channels.xml", + "lib/net462/System.Threading.Channels.dll", + "lib/net462/System.Threading.Channels.xml", + "lib/net8.0/System.Threading.Channels.dll", + "lib/net8.0/System.Threading.Channels.xml", + "lib/net9.0/System.Threading.Channels.dll", + "lib/net9.0/System.Threading.Channels.xml", + "lib/netstandard2.0/System.Threading.Channels.dll", + "lib/netstandard2.0/System.Threading.Channels.xml", + "lib/netstandard2.1/System.Threading.Channels.dll", + "lib/netstandard2.1/System.Threading.Channels.xml", + "system.threading.channels.10.0.0.nupkg.sha512", + "system.threading.channels.nuspec", + "useSharedDesignerContext.txt" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0-windows7.0": [ + "Microsoft.AspNetCore.SignalR.Client >= 10.0.0" + ] + }, + "packageFolders": { + "C:\\Users\\nanxun\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "projectName": "SignalRTest", + "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", + "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\nanxun\\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-windows" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": { + "target": "Package", + "version": "[10.0.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + }, + "Microsoft.WindowsDesktop.App.WindowsForms": { + "privateAssets": "none" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/project.nuget.cache b/backend/SignalRTest/obj/project.nuget.cache index 099ebf6..80a39fe 100644 --- a/backend/SignalRTest/obj/project.nuget.cache +++ b/backend/SignalRTest/obj/project.nuget.cache @@ -1,31 +1,31 @@ -{ - "version": 2, - "dgSpecHash": "qqVLMCu2v8Q=", - "success": true, - "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "expectedPackageFiles": [ - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.connections.abstractions\\10.0.0\\microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.client\\10.0.0\\microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.common\\10.0.0\\microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client\\10.0.0\\microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client.core\\10.0.0\\microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.common\\10.0.0\\microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.protocols.json\\10.0.0\\microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\10.0.0\\microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.timeprovider\\10.0.0\\microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\10.0.0\\microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\10.0.0\\microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.features\\10.0.0\\microsoft.extensions.features.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging\\10.0.0\\microsoft.extensions.logging.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\10.0.0\\microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.options\\10.0.0\\microsoft.extensions.options.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.primitives\\10.0.0\\microsoft.extensions.primitives.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.diagnosticsource\\10.0.0\\system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io.pipelines\\10.0.0\\system.io.pipelines.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.net.serversentevents\\10.0.0\\system.net.serversentevents.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encodings.web\\10.0.0\\system.text.encodings.web.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.json\\10.0.0\\system.text.json.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.channels\\10.0.0\\system.threading.channels.10.0.0.nupkg.sha512" - ], - "logs": [] +{ + "version": 2, + "dgSpecHash": "qqVLMCu2v8Q=", + "success": true, + "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "expectedPackageFiles": [ + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.connections.abstractions\\10.0.0\\microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.client\\10.0.0\\microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.common\\10.0.0\\microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client\\10.0.0\\microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client.core\\10.0.0\\microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.common\\10.0.0\\microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.protocols.json\\10.0.0\\microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\10.0.0\\microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.timeprovider\\10.0.0\\microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\10.0.0\\microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\10.0.0\\microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.features\\10.0.0\\microsoft.extensions.features.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging\\10.0.0\\microsoft.extensions.logging.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\10.0.0\\microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.options\\10.0.0\\microsoft.extensions.options.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.primitives\\10.0.0\\microsoft.extensions.primitives.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.diagnosticsource\\10.0.0\\system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io.pipelines\\10.0.0\\system.io.pipelines.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.net.serversentevents\\10.0.0\\system.net.serversentevents.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encodings.web\\10.0.0\\system.text.encodings.web.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.json\\10.0.0\\system.text.json.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.channels\\10.0.0\\system.threading.channels.10.0.0.nupkg.sha512" + ], + "logs": [] } \ No newline at end of file diff --git a/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.dgspec.json b/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.dgspec.json index 137f214..ba8d88c 100644 --- a/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.dgspec.json +++ b/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.dgspec.json @@ -1,108 +1,108 @@ -{ - "format": 1, - "restore": { - "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": {} - }, - "projects": { - "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "projectName": "SignalRTest", - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", - "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\publish\\win-x64\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\nanxun\\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-windows" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.300" - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": { - "target": "Package", - "version": "[10.0.0, )" - }, - "Microsoft.NET.ILLink.Tasks": { - "suppressParent": "All", - "target": "Package", - "version": "[8.0.19, )", - "autoReferenced": true - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "downloadDependencies": [ - { - "name": "Microsoft.AspNetCore.App.Runtime.win-x64", - "version": "[8.0.19, 8.0.19]" - }, - { - "name": "Microsoft.NETCore.App.Runtime.win-x64", - "version": "[8.0.19, 8.0.19]" - }, - { - "name": "Microsoft.WindowsDesktop.App.Runtime.win-x64", - "version": "[8.0.19, 8.0.19]" - } - ], - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - }, - "Microsoft.WindowsDesktop.App.WindowsForms": { - "privateAssets": "none" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" - } - }, - "runtimes": { - "win-x64": { - "#import": [] - } - } - } - } +{ + "format": 1, + "restore": { + "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": {} + }, + "projects": { + "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "projectName": "SignalRTest", + "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", + "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\publish\\win-x64\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\nanxun\\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-windows" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": { + "target": "Package", + "version": "[10.0.0, )" + }, + "Microsoft.NET.ILLink.Tasks": { + "suppressParent": "All", + "target": "Package", + "version": "[8.0.19, )", + "autoReferenced": true + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Runtime.win-x64", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Runtime.win-x64", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Runtime.win-x64", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + }, + "Microsoft.WindowsDesktop.App.WindowsForms": { + "privateAssets": "none" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + }, + "runtimes": { + "win-x64": { + "#import": [] + } + } + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.props b/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.props index bbece53..f334f1b 100644 --- a/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.props +++ b/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.props @@ -1,22 +1,22 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - $(UserProfile)\.nuget\packages\ - C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages - PackageReference - 6.14.1 - - - - - - - - - - C:\Users\nanxun\.nuget\packages\microsoft.net.illink.tasks\8.0.19 - + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.14.1 + + + + + + + + + + C:\Users\nanxun\.nuget\packages\microsoft.net.illink.tasks\8.0.19 + \ No newline at end of file diff --git a/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.targets b/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.targets index 1437cbf..9952526 100644 --- a/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.targets +++ b/backend/SignalRTest/obj/publish/win-x64/SignalRTest.csproj.nuget.g.targets @@ -1,8 +1,8 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/backend/SignalRTest/obj/publish/win-x64/project.assets.json b/backend/SignalRTest/obj/publish/win-x64/project.assets.json index 7f748c3..0f23a50 100644 --- a/backend/SignalRTest/obj/publish/win-x64/project.assets.json +++ b/backend/SignalRTest/obj/publish/win-x64/project.assets.json @@ -1,1624 +1,1624 @@ -{ - "version": 3, - "targets": { - "net8.0-windows7.0": { - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.NET.ILLink.Tasks/8.0.19": { - "type": "package", - "build": { - "build/Microsoft.NET.ILLink.Tasks.props": {} - } - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - }, - "runtimeTargets": { - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { - "assetType": "runtime", - "rid": "browser" - } - } - }, - "System.Text.Json/10.0.0": { - "type": "package", - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "compile": { - "lib/net8.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/System.Text.Json.targets": {} - } - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - } - }, - "net8.0-windows7.0/win-x64": { - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "10.0.0", - "Microsoft.Extensions.Features": "10.0.0", - "System.IO.Pipelines": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Net.ServerSentEvents": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", - "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0", - "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", - "Microsoft.Bcl.TimeProvider": "10.0.0", - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging": "10.0.0", - "System.Threading.Channels": "10.0.0" - }, - "compile": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0", - "System.Text.Json": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { - "related": ".xml" - } - } - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Common": "10.0.0" - }, - "compile": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Features/10.0.0": { - "type": "package", - "compile": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { - "related": ".xml" - } - } - }, - "Microsoft.Extensions.Logging/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection": "10.0.0", - "Microsoft.Extensions.Logging.Abstractions": "10.0.0", - "Microsoft.Extensions.Options": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "System.Diagnostics.DiagnosticSource": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} - } - }, - "Microsoft.Extensions.Options/10.0.0": { - "type": "package", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", - "Microsoft.Extensions.Primitives": "10.0.0" - }, - "compile": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Options.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} - } - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/Microsoft.Extensions.Primitives.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "Microsoft.NET.ILLink.Tasks/8.0.19": { - "type": "package", - "build": { - "build/Microsoft.NET.ILLink.Tasks.props": {} - } - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.IO.Pipelines/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.IO.Pipelines.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Net.ServerSentEvents/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Net.ServerSentEvents.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Text.Encodings.Web/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Text.Encodings.Web.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - }, - "System.Text.Json/10.0.0": { - "type": "package", - "dependencies": { - "System.IO.Pipelines": "10.0.0", - "System.Text.Encodings.Web": "10.0.0" - }, - "compile": { - "lib/net8.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Text.Json.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/System.Text.Json.targets": {} - } - }, - "System.Threading.Channels/10.0.0": { - "type": "package", - "compile": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net8.0/System.Threading.Channels.dll": { - "related": ".xml" - } - }, - "build": { - "buildTransitive/net8.0/_._": {} - } - } - } - }, - "libraries": { - "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { - "sha512": "MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", - "type": "package", - "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.xml", - "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.xml", - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll", - "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.xml", - "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.connections.abstractions.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { - "sha512": "7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", - "type": "package", - "path": "microsoft.aspnetcore.http.connections.client/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.xml", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.xml", - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll", - "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.xml", - "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.http.connections.client.nuspec" - ] - }, - "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { - "sha512": "VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", - "type": "package", - "path": "microsoft.aspnetcore.http.connections.common/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.dll", - "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.xml", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.dll", - "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.xml", - "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.http.connections.common.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Client/10.0.0": { - "sha512": "XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.client/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.xml", - "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.client.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { - "sha512": "MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll", - "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.xml", - "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.client.core.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Common/10.0.0": { - "sha512": "pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.common/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Common.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Common.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.xml", - "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.common.nuspec" - ] - }, - "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { - "sha512": "L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", - "type": "package", - "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", - "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", - "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", - "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", - "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", - "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", - "microsoft.aspnetcore.signalr.protocols.json.nuspec" - ] - }, - "Microsoft.Bcl.AsyncInterfaces/10.0.0": { - "sha512": "vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", - "type": "package", - "path": "microsoft.bcl.asyncinterfaces/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", - "buildTransitive/net462/_._", - "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", - "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", - "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", - "microsoft.bcl.asyncinterfaces.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Bcl.TimeProvider/10.0.0": { - "sha512": "bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", - "type": "package", - "path": "microsoft.bcl.timeprovider/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Bcl.TimeProvider.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Bcl.TimeProvider.targets", - "lib/net462/Microsoft.Bcl.TimeProvider.dll", - "lib/net462/Microsoft.Bcl.TimeProvider.xml", - "lib/net8.0/Microsoft.Bcl.TimeProvider.dll", - "lib/net8.0/Microsoft.Bcl.TimeProvider.xml", - "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.dll", - "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.xml", - "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", - "microsoft.bcl.timeprovider.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.DependencyInjection/10.0.0": { - "sha512": "f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", - "type": "package", - "path": "microsoft.extensions.dependencyinjection/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/net462/Microsoft.Extensions.DependencyInjection.dll", - "lib/net462/Microsoft.Extensions.DependencyInjection.xml", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", - "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", - "microsoft.extensions.dependencyinjection.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { - "sha512": "L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", - "type": "package", - "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", - "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", - "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", - "microsoft.extensions.dependencyinjection.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Features/10.0.0": { - "sha512": "kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", - "type": "package", - "path": "microsoft.extensions.features/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "lib/net10.0/Microsoft.Extensions.Features.dll", - "lib/net10.0/Microsoft.Extensions.Features.xml", - "lib/net462/Microsoft.Extensions.Features.dll", - "lib/net462/Microsoft.Extensions.Features.xml", - "lib/netstandard2.0/Microsoft.Extensions.Features.dll", - "lib/netstandard2.0/Microsoft.Extensions.Features.xml", - "microsoft.extensions.features.10.0.0.nupkg.sha512", - "microsoft.extensions.features.nuspec" - ] - }, - "Microsoft.Extensions.Logging/10.0.0": { - "sha512": "BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", - "type": "package", - "path": "microsoft.extensions.logging/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Logging.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", - "lib/net10.0/Microsoft.Extensions.Logging.dll", - "lib/net10.0/Microsoft.Extensions.Logging.xml", - "lib/net462/Microsoft.Extensions.Logging.dll", - "lib/net462/Microsoft.Extensions.Logging.xml", - "lib/net8.0/Microsoft.Extensions.Logging.dll", - "lib/net8.0/Microsoft.Extensions.Logging.xml", - "lib/net9.0/Microsoft.Extensions.Logging.dll", - "lib/net9.0/Microsoft.Extensions.Logging.xml", - "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", - "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", - "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", - "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", - "microsoft.extensions.logging.10.0.0.nupkg.sha512", - "microsoft.extensions.logging.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Logging.Abstractions/10.0.0": { - "sha512": "FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", - "type": "package", - "path": "microsoft.extensions.logging.abstractions/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", - "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", - "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", - "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", - "microsoft.extensions.logging.abstractions.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Options/10.0.0": { - "sha512": "8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", - "type": "package", - "path": "microsoft.extensions.options/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", - "buildTransitive/net461/Microsoft.Extensions.Options.targets", - "buildTransitive/net462/Microsoft.Extensions.Options.targets", - "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", - "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", - "lib/net10.0/Microsoft.Extensions.Options.dll", - "lib/net10.0/Microsoft.Extensions.Options.xml", - "lib/net462/Microsoft.Extensions.Options.dll", - "lib/net462/Microsoft.Extensions.Options.xml", - "lib/net8.0/Microsoft.Extensions.Options.dll", - "lib/net8.0/Microsoft.Extensions.Options.xml", - "lib/net9.0/Microsoft.Extensions.Options.dll", - "lib/net9.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.0/Microsoft.Extensions.Options.dll", - "lib/netstandard2.0/Microsoft.Extensions.Options.xml", - "lib/netstandard2.1/Microsoft.Extensions.Options.dll", - "lib/netstandard2.1/Microsoft.Extensions.Options.xml", - "microsoft.extensions.options.10.0.0.nupkg.sha512", - "microsoft.extensions.options.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.Extensions.Primitives/10.0.0": { - "sha512": "inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", - "type": "package", - "path": "microsoft.extensions.primitives/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", - "lib/net10.0/Microsoft.Extensions.Primitives.dll", - "lib/net10.0/Microsoft.Extensions.Primitives.xml", - "lib/net462/Microsoft.Extensions.Primitives.dll", - "lib/net462/Microsoft.Extensions.Primitives.xml", - "lib/net8.0/Microsoft.Extensions.Primitives.dll", - "lib/net8.0/Microsoft.Extensions.Primitives.xml", - "lib/net9.0/Microsoft.Extensions.Primitives.dll", - "lib/net9.0/Microsoft.Extensions.Primitives.xml", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", - "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", - "microsoft.extensions.primitives.10.0.0.nupkg.sha512", - "microsoft.extensions.primitives.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "Microsoft.NET.ILLink.Tasks/8.0.19": { - "sha512": "IhHf+zeZiaE5EXRyxILd4qM+Hj9cxV3sa8MpzZgeEhpvaG3a1VEGF6UCaPFLO44Kua3JkLKluE0SWVamS50PlA==", - "type": "package", - "path": "microsoft.net.illink.tasks/8.0.19", - "hasTools": true, - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "LICENSE.TXT", - "Sdk/Sdk.props", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/cs/ILLink.CodeFixProvider.dll", - "analyzers/dotnet/cs/ILLink.RoslynAnalyzer.dll", - "build/Microsoft.NET.ILLink.Analyzers.props", - "build/Microsoft.NET.ILLink.Tasks.props", - "build/Microsoft.NET.ILLink.targets", - "microsoft.net.illink.tasks.8.0.19.nupkg.sha512", - "microsoft.net.illink.tasks.nuspec", - "tools/net472/ILLink.Tasks.dll", - "tools/net472/ILLink.Tasks.dll.config", - "tools/net472/Mono.Cecil.Mdb.dll", - "tools/net472/Mono.Cecil.Pdb.dll", - "tools/net472/Mono.Cecil.Rocks.dll", - "tools/net472/Mono.Cecil.dll", - "tools/net472/Sdk/Sdk.props", - "tools/net472/System.Buffers.dll", - "tools/net472/System.Collections.Immutable.dll", - "tools/net472/System.Memory.dll", - "tools/net472/System.Numerics.Vectors.dll", - "tools/net472/System.Reflection.Metadata.dll", - "tools/net472/System.Runtime.CompilerServices.Unsafe.dll", - "tools/net472/build/Microsoft.NET.ILLink.Analyzers.props", - "tools/net472/build/Microsoft.NET.ILLink.Tasks.props", - "tools/net472/build/Microsoft.NET.ILLink.targets", - "tools/net8.0/ILLink.Tasks.deps.json", - "tools/net8.0/ILLink.Tasks.dll", - "tools/net8.0/Mono.Cecil.Mdb.dll", - "tools/net8.0/Mono.Cecil.Pdb.dll", - "tools/net8.0/Mono.Cecil.Rocks.dll", - "tools/net8.0/Mono.Cecil.dll", - "tools/net8.0/Sdk/Sdk.props", - "tools/net8.0/build/Microsoft.NET.ILLink.Analyzers.props", - "tools/net8.0/build/Microsoft.NET.ILLink.Tasks.props", - "tools/net8.0/build/Microsoft.NET.ILLink.targets", - "tools/net8.0/illink.deps.json", - "tools/net8.0/illink.dll", - "tools/net8.0/illink.runtimeconfig.json", - "useSharedDesignerContext.txt" - ] - }, - "System.Diagnostics.DiagnosticSource/10.0.0": { - "sha512": "0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", - "type": "package", - "path": "system.diagnostics.diagnosticsource/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", - "lib/net10.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net10.0/System.Diagnostics.DiagnosticSource.xml", - "lib/net462/System.Diagnostics.DiagnosticSource.dll", - "lib/net462/System.Diagnostics.DiagnosticSource.xml", - "lib/net8.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net8.0/System.Diagnostics.DiagnosticSource.xml", - "lib/net9.0/System.Diagnostics.DiagnosticSource.dll", - "lib/net9.0/System.Diagnostics.DiagnosticSource.xml", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", - "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", - "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", - "system.diagnostics.diagnosticsource.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.IO.Pipelines/10.0.0": { - "sha512": "M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", - "type": "package", - "path": "system.io.pipelines/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.IO.Pipelines.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", - "lib/net10.0/System.IO.Pipelines.dll", - "lib/net10.0/System.IO.Pipelines.xml", - "lib/net462/System.IO.Pipelines.dll", - "lib/net462/System.IO.Pipelines.xml", - "lib/net8.0/System.IO.Pipelines.dll", - "lib/net8.0/System.IO.Pipelines.xml", - "lib/net9.0/System.IO.Pipelines.dll", - "lib/net9.0/System.IO.Pipelines.xml", - "lib/netstandard2.0/System.IO.Pipelines.dll", - "lib/netstandard2.0/System.IO.Pipelines.xml", - "system.io.pipelines.10.0.0.nupkg.sha512", - "system.io.pipelines.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Net.ServerSentEvents/10.0.0": { - "sha512": "zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", - "type": "package", - "path": "system.net.serversentevents/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Net.ServerSentEvents.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Net.ServerSentEvents.targets", - "lib/net10.0/System.Net.ServerSentEvents.dll", - "lib/net10.0/System.Net.ServerSentEvents.xml", - "lib/net462/System.Net.ServerSentEvents.dll", - "lib/net462/System.Net.ServerSentEvents.xml", - "lib/net8.0/System.Net.ServerSentEvents.dll", - "lib/net8.0/System.Net.ServerSentEvents.xml", - "lib/net9.0/System.Net.ServerSentEvents.dll", - "lib/net9.0/System.Net.ServerSentEvents.xml", - "lib/netstandard2.0/System.Net.ServerSentEvents.dll", - "lib/netstandard2.0/System.Net.ServerSentEvents.xml", - "system.net.serversentevents.10.0.0.nupkg.sha512", - "system.net.serversentevents.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Text.Encodings.Web/10.0.0": { - "sha512": "257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", - "type": "package", - "path": "system.text.encodings.web/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Text.Encodings.Web.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets", - "lib/net10.0/System.Text.Encodings.Web.dll", - "lib/net10.0/System.Text.Encodings.Web.xml", - "lib/net462/System.Text.Encodings.Web.dll", - "lib/net462/System.Text.Encodings.Web.xml", - "lib/net8.0/System.Text.Encodings.Web.dll", - "lib/net8.0/System.Text.Encodings.Web.xml", - "lib/net9.0/System.Text.Encodings.Web.dll", - "lib/net9.0/System.Text.Encodings.Web.xml", - "lib/netstandard2.0/System.Text.Encodings.Web.dll", - "lib/netstandard2.0/System.Text.Encodings.Web.xml", - "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.dll", - "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.xml", - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll", - "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml", - "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.dll", - "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.xml", - "runtimes/win/lib/net9.0/System.Text.Encodings.Web.dll", - "runtimes/win/lib/net9.0/System.Text.Encodings.Web.xml", - "system.text.encodings.web.10.0.0.nupkg.sha512", - "system.text.encodings.web.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Text.Json/10.0.0": { - "sha512": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", - "type": "package", - "path": "system.text.json/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", - "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", - "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", - "buildTransitive/net461/System.Text.Json.targets", - "buildTransitive/net462/System.Text.Json.targets", - "buildTransitive/net8.0/System.Text.Json.targets", - "buildTransitive/netcoreapp2.0/System.Text.Json.targets", - "buildTransitive/netstandard2.0/System.Text.Json.targets", - "lib/net10.0/System.Text.Json.dll", - "lib/net10.0/System.Text.Json.xml", - "lib/net462/System.Text.Json.dll", - "lib/net462/System.Text.Json.xml", - "lib/net8.0/System.Text.Json.dll", - "lib/net8.0/System.Text.Json.xml", - "lib/net9.0/System.Text.Json.dll", - "lib/net9.0/System.Text.Json.xml", - "lib/netstandard2.0/System.Text.Json.dll", - "lib/netstandard2.0/System.Text.Json.xml", - "system.text.json.10.0.0.nupkg.sha512", - "system.text.json.nuspec", - "useSharedDesignerContext.txt" - ] - }, - "System.Threading.Channels/10.0.0": { - "sha512": "fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", - "type": "package", - "path": "system.threading.channels/10.0.0", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "buildTransitive/net461/System.Threading.Channels.targets", - "buildTransitive/net462/_._", - "buildTransitive/net8.0/_._", - "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", - "lib/net10.0/System.Threading.Channels.dll", - "lib/net10.0/System.Threading.Channels.xml", - "lib/net462/System.Threading.Channels.dll", - "lib/net462/System.Threading.Channels.xml", - "lib/net8.0/System.Threading.Channels.dll", - "lib/net8.0/System.Threading.Channels.xml", - "lib/net9.0/System.Threading.Channels.dll", - "lib/net9.0/System.Threading.Channels.xml", - "lib/netstandard2.0/System.Threading.Channels.dll", - "lib/netstandard2.0/System.Threading.Channels.xml", - "lib/netstandard2.1/System.Threading.Channels.dll", - "lib/netstandard2.1/System.Threading.Channels.xml", - "system.threading.channels.10.0.0.nupkg.sha512", - "system.threading.channels.nuspec", - "useSharedDesignerContext.txt" - ] - } - }, - "projectFileDependencyGroups": { - "net8.0-windows7.0": [ - "Microsoft.AspNetCore.SignalR.Client >= 10.0.0", - "Microsoft.NET.ILLink.Tasks >= 8.0.19" - ] - }, - "packageFolders": { - "C:\\Users\\nanxun\\.nuget\\packages\\": {}, - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "projectName": "SignalRTest", - "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", - "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\publish\\win-x64\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\nanxun\\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-windows" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.300" - }, - "frameworks": { - "net8.0-windows7.0": { - "targetAlias": "net8.0-windows", - "dependencies": { - "Microsoft.AspNetCore.SignalR.Client": { - "target": "Package", - "version": "[10.0.0, )" - }, - "Microsoft.NET.ILLink.Tasks": { - "suppressParent": "All", - "target": "Package", - "version": "[8.0.19, )", - "autoReferenced": true - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "downloadDependencies": [ - { - "name": "Microsoft.AspNetCore.App.Runtime.win-x64", - "version": "[8.0.19, 8.0.19]" - }, - { - "name": "Microsoft.NETCore.App.Runtime.win-x64", - "version": "[8.0.19, 8.0.19]" - }, - { - "name": "Microsoft.WindowsDesktop.App.Runtime.win-x64", - "version": "[8.0.19, 8.0.19]" - } - ], - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - }, - "Microsoft.WindowsDesktop.App.WindowsForms": { - "privateAssets": "none" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" - } - }, - "runtimes": { - "win-x64": { - "#import": [] - } - } - } +{ + "version": 3, + "targets": { + "net8.0-windows7.0": { + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.NET.ILLink.Tasks/8.0.19": { + "type": "package", + "build": { + "build/Microsoft.NET.ILLink.Tasks.props": {} + } + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + }, + "runtimeTargets": { + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { + "assetType": "runtime", + "rid": "browser" + } + } + }, + "System.Text.Json/10.0.0": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "compile": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/System.Text.Json.targets": {} + } + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + } + }, + "net8.0-windows7.0/win-x64": { + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "10.0.0", + "Microsoft.Extensions.Features": "10.0.0", + "System.IO.Pipelines": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Common": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Net.ServerSentEvents": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Http.Connections.Client": "10.0.0", + "Microsoft.AspNetCore.SignalR.Client.Core": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0", + "Microsoft.AspNetCore.SignalR.Protocols.Json": "10.0.0", + "Microsoft.Bcl.TimeProvider": "10.0.0", + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging": "10.0.0", + "System.Threading.Channels": "10.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.Connections.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "System.Text.Json": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll": { + "related": ".xml" + } + } + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Common": "10.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Features/10.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Features.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.Logging/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "10.0.0", + "Microsoft.Extensions.Logging.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "System.Diagnostics.DiagnosticSource": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "Microsoft.Extensions.Options/10.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Options.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {} + } + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Primitives.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "Microsoft.NET.ILLink.Tasks/8.0.19": { + "type": "package", + "build": { + "build/Microsoft.NET.ILLink.Tasks.props": {} + } + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.IO.Pipelines/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Net.ServerSentEvents/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Net.ServerSentEvents.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Text.Encodings.Web/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Text.Json/10.0.0": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "10.0.0", + "System.Text.Encodings.Web": "10.0.0" + }, + "compile": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/System.Text.Json.targets": {} + } + }, + "System.Threading.Channels/10.0.0": { + "type": "package", + "compile": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/System.Threading.Channels.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + } + } + }, + "libraries": { + "Microsoft.AspNetCore.Connections.Abstractions/10.0.0": { + "sha512": "MPXDzUknemj+sCL/LYOLvU/qIX3o9zCJtKXu9jcwNMQiOvwuv75lV20p3qGENA/ynTH7hOPFqDUEGBT30IvhEA==", + "type": "package", + "path": "microsoft.aspnetcore.connections.abstractions/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/net10.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/net462/Microsoft.AspNetCore.Connections.Abstractions.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Connections.Abstractions.xml", + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.dll", + "lib/netstandard2.1/Microsoft.AspNetCore.Connections.Abstractions.xml", + "microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.connections.abstractions.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Connections.Client/10.0.0": { + "sha512": "7nSER+de0V6mWTcdUqBJZlm1XMz+Y2mTHzL3B/msVF+JfSXXZtKNVC18TI7AeSz4PD//b5qpy8n0RQEIVByfJw==", + "type": "package", + "path": "microsoft.aspnetcore.http.connections.client/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Client.xml", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Client.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Client.xml", + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.dll", + "lib/netstandard2.1/Microsoft.AspNetCore.Http.Connections.Client.xml", + "microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.http.connections.client.nuspec" + ] + }, + "Microsoft.AspNetCore.Http.Connections.Common/10.0.0": { + "sha512": "VaEGwazymaL4NB+JoAdvM/IaFg5IIg1WXtVgKmD/y3Et2qnPxolAlMXYJrI8k1EPjmoIcXQZHTj47MskRRyRIA==", + "type": "package", + "path": "microsoft.aspnetcore.http.connections.common/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.dll", + "lib/net10.0/Microsoft.AspNetCore.Http.Connections.Common.xml", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.dll", + "lib/net462/Microsoft.AspNetCore.Http.Connections.Common.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.Http.Connections.Common.xml", + "microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.http.connections.common.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Client/10.0.0": { + "sha512": "XHPNPLqPX7CVJ5JuaumTP58sAVrQG4TqFKLFOtN1mZIwgEUHKwtDeMwL0G8dIvy9zcpi7os4CYAHvA1bUUTzVw==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.client/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.xml", + "microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.client.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Client.Core/10.0.0": { + "sha512": "MrXjT7YNV0e1Jb3Hai6kX/Ot7X2SlONHv5IC5XNGeycTTLu3qitJ7DXZUsPPZs6yanWIOsIKjPEY58ARHdRKGg==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.client.core/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.dll", + "lib/netstandard2.1/Microsoft.AspNetCore.SignalR.Client.Core.xml", + "microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.client.core.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Common/10.0.0": { + "sha512": "pyG6FLV4/EeOQeZ30ra4aUYycJQPT/9ddB91aplMKwEGT5KbEs//WMqMObVGvDREP508EB4QUAKzacSVi30nxw==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.common/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Common.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Common.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Common.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Common.xml", + "microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.common.nuspec" + ] + }, + "Microsoft.AspNetCore.SignalR.Protocols.Json/10.0.0": { + "sha512": "L++SCI4pcG9uo7HTzAFTX33BsZFDHCdukJIK+/S4tgH/kcJlPTp9QS96E4zgOuzXRDrzaunwbFSS2DElTmWGRA==", + "type": "package", + "path": "microsoft.aspnetcore.signalr.protocols.json/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "lib/net10.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", + "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "lib/net462/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll", + "lib/netstandard2.0/Microsoft.AspNetCore.SignalR.Protocols.Json.xml", + "microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", + "microsoft.aspnetcore.signalr.protocols.json.nuspec" + ] + }, + "Microsoft.Bcl.AsyncInterfaces/10.0.0": { + "sha512": "vFuwSLj9QJBbNR0NeNO4YVASUbokxs+i/xbuu8B+Fs4FAZg5QaFa6eGrMaRqTzzNI5tAb97T7BhSxtLckFyiRA==", + "type": "package", + "path": "microsoft.bcl.asyncinterfaces/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.AsyncInterfaces.targets", + "buildTransitive/net462/_._", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/net462/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.xml", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll", + "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.xml", + "microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", + "microsoft.bcl.asyncinterfaces.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Bcl.TimeProvider/10.0.0": { + "sha512": "bUubrBD6tRJE3V1kvRloYc6NymH3R5oFKjAS9e0ELNx6u0ZR+zjps9dDQyjgqN/rArzl7f+21KGszj3YRN7F2Q==", + "type": "package", + "path": "microsoft.bcl.timeprovider/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Bcl.TimeProvider.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Bcl.TimeProvider.targets", + "lib/net462/Microsoft.Bcl.TimeProvider.dll", + "lib/net462/Microsoft.Bcl.TimeProvider.xml", + "lib/net8.0/Microsoft.Bcl.TimeProvider.dll", + "lib/net8.0/Microsoft.Bcl.TimeProvider.xml", + "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.dll", + "lib/netstandard2.0/Microsoft.Bcl.TimeProvider.xml", + "microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", + "microsoft.bcl.timeprovider.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/10.0.0": { + "sha512": "f0RBabswJq+gRu5a+hWIobrLWiUYPKMhCD9WO3sYBAdSy3FFH14LMvLVFZc2kPSCimBLxSuitUhsd6tb0TAY6A==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.targets", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net462/Microsoft.Extensions.DependencyInjection.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0": { + "sha512": "L3AdmZ1WOK4XXT5YFPEwyt0ep6l8lGIPs7F5OOBZc77Zqeo01Of7XXICy47628sdVl0v/owxYJTe86DTgFwKCA==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Features/10.0.0": { + "sha512": "kCFjPpfvz0K00xIpe7wJKre1gFJdNIu9+1BYJLklu3GWb+uU4HIjza0uMBQeFGZws9VJos9LeO+PUfvGcre+9g==", + "type": "package", + "path": "microsoft.extensions.features/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "lib/net10.0/Microsoft.Extensions.Features.dll", + "lib/net10.0/Microsoft.Extensions.Features.xml", + "lib/net462/Microsoft.Extensions.Features.dll", + "lib/net462/Microsoft.Extensions.Features.xml", + "lib/netstandard2.0/Microsoft.Extensions.Features.dll", + "lib/netstandard2.0/Microsoft.Extensions.Features.xml", + "microsoft.extensions.features.10.0.0.nupkg.sha512", + "microsoft.extensions.features.nuspec" + ] + }, + "Microsoft.Extensions.Logging/10.0.0": { + "sha512": "BStFkd5CcnEtarlcgYDBcFzGYCuuNMzPs02wN3WBsOFoYIEmYoUdAiU+au6opzoqfTYJsMTW00AeqDdnXH2CvA==", + "type": "package", + "path": "microsoft.extensions.logging/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Logging.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.targets", + "lib/net10.0/Microsoft.Extensions.Logging.dll", + "lib/net10.0/Microsoft.Extensions.Logging.xml", + "lib/net462/Microsoft.Extensions.Logging.dll", + "lib/net462/Microsoft.Extensions.Logging.xml", + "lib/net8.0/Microsoft.Extensions.Logging.dll", + "lib/net8.0/Microsoft.Extensions.Logging.xml", + "lib/net9.0/Microsoft.Extensions.Logging.dll", + "lib/net9.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.10.0.0.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/10.0.0": { + "sha512": "FU/IfjDfwaMuKr414SSQNTIti/69bHEMb+QKrskRb26oVqpx3lNFXMjs/RC9ZUuhBhcwDM2BwOgoMw+PZ+beqQ==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Options/10.0.0": { + "sha512": "8oCAgXOow5XDrY9HaXX1QmH3ORsyZO/ANVHBlhLyCeWTH5Sg4UuqZeOTWJi6484M+LqSx0RqQXDJtdYy2BNiLQ==", + "type": "package", + "path": "microsoft.extensions.options/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Options.targets", + "buildTransitive/net462/Microsoft.Extensions.Options.targets", + "buildTransitive/net8.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets", + "lib/net10.0/Microsoft.Extensions.Options.dll", + "lib/net10.0/Microsoft.Extensions.Options.xml", + "lib/net462/Microsoft.Extensions.Options.dll", + "lib/net462/Microsoft.Extensions.Options.xml", + "lib/net8.0/Microsoft.Extensions.Options.dll", + "lib/net8.0/Microsoft.Extensions.Options.xml", + "lib/net9.0/Microsoft.Extensions.Options.dll", + "lib/net9.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.1/Microsoft.Extensions.Options.dll", + "lib/netstandard2.1/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.10.0.0.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Primitives/10.0.0": { + "sha512": "inRnbpCS0nwO/RuoZIAqxQUuyjaknOOnCEZB55KSMMjRhl0RQDttSmLSGsUJN3RQ3ocf5NDLFd2mOQViHqMK5w==", + "type": "package", + "path": "microsoft.extensions.primitives/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.Primitives.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets", + "lib/net10.0/Microsoft.Extensions.Primitives.dll", + "lib/net10.0/Microsoft.Extensions.Primitives.xml", + "lib/net462/Microsoft.Extensions.Primitives.dll", + "lib/net462/Microsoft.Extensions.Primitives.xml", + "lib/net8.0/Microsoft.Extensions.Primitives.dll", + "lib/net8.0/Microsoft.Extensions.Primitives.xml", + "lib/net9.0/Microsoft.Extensions.Primitives.dll", + "lib/net9.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.10.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.NET.ILLink.Tasks/8.0.19": { + "sha512": "IhHf+zeZiaE5EXRyxILd4qM+Hj9cxV3sa8MpzZgeEhpvaG3a1VEGF6UCaPFLO44Kua3JkLKluE0SWVamS50PlA==", + "type": "package", + "path": "microsoft.net.illink.tasks/8.0.19", + "hasTools": true, + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "Sdk/Sdk.props", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/cs/ILLink.CodeFixProvider.dll", + "analyzers/dotnet/cs/ILLink.RoslynAnalyzer.dll", + "build/Microsoft.NET.ILLink.Analyzers.props", + "build/Microsoft.NET.ILLink.Tasks.props", + "build/Microsoft.NET.ILLink.targets", + "microsoft.net.illink.tasks.8.0.19.nupkg.sha512", + "microsoft.net.illink.tasks.nuspec", + "tools/net472/ILLink.Tasks.dll", + "tools/net472/ILLink.Tasks.dll.config", + "tools/net472/Mono.Cecil.Mdb.dll", + "tools/net472/Mono.Cecil.Pdb.dll", + "tools/net472/Mono.Cecil.Rocks.dll", + "tools/net472/Mono.Cecil.dll", + "tools/net472/Sdk/Sdk.props", + "tools/net472/System.Buffers.dll", + "tools/net472/System.Collections.Immutable.dll", + "tools/net472/System.Memory.dll", + "tools/net472/System.Numerics.Vectors.dll", + "tools/net472/System.Reflection.Metadata.dll", + "tools/net472/System.Runtime.CompilerServices.Unsafe.dll", + "tools/net472/build/Microsoft.NET.ILLink.Analyzers.props", + "tools/net472/build/Microsoft.NET.ILLink.Tasks.props", + "tools/net472/build/Microsoft.NET.ILLink.targets", + "tools/net8.0/ILLink.Tasks.deps.json", + "tools/net8.0/ILLink.Tasks.dll", + "tools/net8.0/Mono.Cecil.Mdb.dll", + "tools/net8.0/Mono.Cecil.Pdb.dll", + "tools/net8.0/Mono.Cecil.Rocks.dll", + "tools/net8.0/Mono.Cecil.dll", + "tools/net8.0/Sdk/Sdk.props", + "tools/net8.0/build/Microsoft.NET.ILLink.Analyzers.props", + "tools/net8.0/build/Microsoft.NET.ILLink.Tasks.props", + "tools/net8.0/build/Microsoft.NET.ILLink.targets", + "tools/net8.0/illink.deps.json", + "tools/net8.0/illink.dll", + "tools/net8.0/illink.runtimeconfig.json", + "useSharedDesignerContext.txt" + ] + }, + "System.Diagnostics.DiagnosticSource/10.0.0": { + "sha512": "0KdBK+h7G13PuOSC2R/DalAoFMvdYMznvGRuICtkdcUMXgl/gYXsG6z4yUvTxHSMACorWgHCU1Faq0KUHU6yAQ==", + "type": "package", + "path": "system.diagnostics.diagnosticsource/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets", + "lib/net10.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net10.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net462/System.Diagnostics.DiagnosticSource.dll", + "lib/net462/System.Diagnostics.DiagnosticSource.xml", + "lib/net8.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net8.0/System.Diagnostics.DiagnosticSource.xml", + "lib/net9.0/System.Diagnostics.DiagnosticSource.dll", + "lib/net9.0/System.Diagnostics.DiagnosticSource.xml", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll", + "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml", + "system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", + "system.diagnostics.diagnosticsource.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.IO.Pipelines/10.0.0": { + "sha512": "M1eb3nfXntaRJPrrMVM9EFS8I1bDTnt0uvUS6QP/SicZf/ZZjydMD5NiXxfmwW/uQwaMDP/yX2P+zQN1NBHChg==", + "type": "package", + "path": "system.io.pipelines/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Pipelines.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "lib/net10.0/System.IO.Pipelines.dll", + "lib/net10.0/System.IO.Pipelines.xml", + "lib/net462/System.IO.Pipelines.dll", + "lib/net462/System.IO.Pipelines.xml", + "lib/net8.0/System.IO.Pipelines.dll", + "lib/net8.0/System.IO.Pipelines.xml", + "lib/net9.0/System.IO.Pipelines.dll", + "lib/net9.0/System.IO.Pipelines.xml", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.xml", + "system.io.pipelines.10.0.0.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Net.ServerSentEvents/10.0.0": { + "sha512": "zRH5XXZfenw7bgn8BT+q6XH1Sp75kSQM5m7Ee4WzZhMu2syGawcsqdlfFa2u/+skXr/u2ufp9F6M9lgkKkfZZg==", + "type": "package", + "path": "system.net.serversentevents/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Net.ServerSentEvents.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Net.ServerSentEvents.targets", + "lib/net10.0/System.Net.ServerSentEvents.dll", + "lib/net10.0/System.Net.ServerSentEvents.xml", + "lib/net462/System.Net.ServerSentEvents.dll", + "lib/net462/System.Net.ServerSentEvents.xml", + "lib/net8.0/System.Net.ServerSentEvents.dll", + "lib/net8.0/System.Net.ServerSentEvents.xml", + "lib/net9.0/System.Net.ServerSentEvents.dll", + "lib/net9.0/System.Net.ServerSentEvents.xml", + "lib/netstandard2.0/System.Net.ServerSentEvents.dll", + "lib/netstandard2.0/System.Net.ServerSentEvents.xml", + "system.net.serversentevents.10.0.0.nupkg.sha512", + "system.net.serversentevents.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Encodings.Web/10.0.0": { + "sha512": "257hh1ep1Gqm1Lm0ulxf7vVBVMJuGN6EL4xSWjpi46DffXzm1058IiWsfSC06zSm7SniN+Tb5160UnXsSa8rRg==", + "type": "package", + "path": "system.text.encodings.web/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Text.Encodings.Web.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets", + "lib/net10.0/System.Text.Encodings.Web.dll", + "lib/net10.0/System.Text.Encodings.Web.xml", + "lib/net462/System.Text.Encodings.Web.dll", + "lib/net462/System.Text.Encodings.Web.xml", + "lib/net8.0/System.Text.Encodings.Web.dll", + "lib/net8.0/System.Text.Encodings.Web.xml", + "lib/net9.0/System.Text.Encodings.Web.dll", + "lib/net9.0/System.Text.Encodings.Web.xml", + "lib/netstandard2.0/System.Text.Encodings.Web.dll", + "lib/netstandard2.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net10.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml", + "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.dll", + "runtimes/wasi/lib/net10.0/System.Text.Encodings.Web.xml", + "runtimes/win/lib/net9.0/System.Text.Encodings.Web.dll", + "runtimes/win/lib/net9.0/System.Text.Encodings.Web.xml", + "system.text.encodings.web.10.0.0.nupkg.sha512", + "system.text.encodings.web.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Json/10.0.0": { + "sha512": "1Dpjwq9peG/Wt5BNbrzIhTpclfOSqBWZsUO28vVr59yQlkvL5jLBWfpfzRmJ1OY+6DciaY0DUcltyzs4fuZHjw==", + "type": "package", + "path": "system.text.json/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "buildTransitive/net461/System.Text.Json.targets", + "buildTransitive/net462/System.Text.Json.targets", + "buildTransitive/net8.0/System.Text.Json.targets", + "buildTransitive/netcoreapp2.0/System.Text.Json.targets", + "buildTransitive/netstandard2.0/System.Text.Json.targets", + "lib/net10.0/System.Text.Json.dll", + "lib/net10.0/System.Text.Json.xml", + "lib/net462/System.Text.Json.dll", + "lib/net462/System.Text.Json.xml", + "lib/net8.0/System.Text.Json.dll", + "lib/net8.0/System.Text.Json.xml", + "lib/net9.0/System.Text.Json.dll", + "lib/net9.0/System.Text.Json.xml", + "lib/netstandard2.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.xml", + "system.text.json.10.0.0.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Threading.Channels/10.0.0": { + "sha512": "fwRdkJpKisUEVNaEdsL5w5EwidzuVw0BOTfzDvYB1Yg8sq1pqNfUZxBOVFgSj6i6tNhpT3HP8BEDXf1+kFkTDA==", + "type": "package", + "path": "system.threading.channels/10.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Threading.Channels.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Threading.Channels.targets", + "lib/net10.0/System.Threading.Channels.dll", + "lib/net10.0/System.Threading.Channels.xml", + "lib/net462/System.Threading.Channels.dll", + "lib/net462/System.Threading.Channels.xml", + "lib/net8.0/System.Threading.Channels.dll", + "lib/net8.0/System.Threading.Channels.xml", + "lib/net9.0/System.Threading.Channels.dll", + "lib/net9.0/System.Threading.Channels.xml", + "lib/netstandard2.0/System.Threading.Channels.dll", + "lib/netstandard2.0/System.Threading.Channels.xml", + "lib/netstandard2.1/System.Threading.Channels.dll", + "lib/netstandard2.1/System.Threading.Channels.xml", + "system.threading.channels.10.0.0.nupkg.sha512", + "system.threading.channels.nuspec", + "useSharedDesignerContext.txt" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0-windows7.0": [ + "Microsoft.AspNetCore.SignalR.Client >= 10.0.0", + "Microsoft.NET.ILLink.Tasks >= 8.0.19" + ] + }, + "packageFolders": { + "C:\\Users\\nanxun\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "projectName": "SignalRTest", + "projectPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "packagesPath": "C:\\Users\\nanxun\\.nuget\\packages\\", + "outputPath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\obj\\publish\\win-x64\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\nanxun\\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-windows" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "C:\\Program Files\\dotnet\\library-packs": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.300" + }, + "frameworks": { + "net8.0-windows7.0": { + "targetAlias": "net8.0-windows", + "dependencies": { + "Microsoft.AspNetCore.SignalR.Client": { + "target": "Package", + "version": "[10.0.0, )" + }, + "Microsoft.NET.ILLink.Tasks": { + "suppressParent": "All", + "target": "Package", + "version": "[8.0.19, )", + "autoReferenced": true + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "downloadDependencies": [ + { + "name": "Microsoft.AspNetCore.App.Runtime.win-x64", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.NETCore.App.Runtime.win-x64", + "version": "[8.0.19, 8.0.19]" + }, + { + "name": "Microsoft.WindowsDesktop.App.Runtime.win-x64", + "version": "[8.0.19, 8.0.19]" + } + ], + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + }, + "Microsoft.WindowsDesktop.App.WindowsForms": { + "privateAssets": "none" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + } + }, + "runtimes": { + "win-x64": { + "#import": [] + } + } + } } \ No newline at end of file diff --git a/backend/SignalRTest/obj/publish/win-x64/project.nuget.cache b/backend/SignalRTest/obj/publish/win-x64/project.nuget.cache index 3812f5a..888fbed 100644 --- a/backend/SignalRTest/obj/publish/win-x64/project.nuget.cache +++ b/backend/SignalRTest/obj/publish/win-x64/project.nuget.cache @@ -1,35 +1,35 @@ -{ - "version": 2, - "dgSpecHash": "tkEl1r4m+Ks=", - "success": true, - "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", - "expectedPackageFiles": [ - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.connections.abstractions\\10.0.0\\microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.client\\10.0.0\\microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.common\\10.0.0\\microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client\\10.0.0\\microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client.core\\10.0.0\\microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.common\\10.0.0\\microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.protocols.json\\10.0.0\\microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\10.0.0\\microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.timeprovider\\10.0.0\\microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\10.0.0\\microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\10.0.0\\microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.features\\10.0.0\\microsoft.extensions.features.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging\\10.0.0\\microsoft.extensions.logging.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\10.0.0\\microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.options\\10.0.0\\microsoft.extensions.options.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.primitives\\10.0.0\\microsoft.extensions.primitives.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.net.illink.tasks\\8.0.19\\microsoft.net.illink.tasks.8.0.19.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.diagnosticsource\\10.0.0\\system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.io.pipelines\\10.0.0\\system.io.pipelines.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.net.serversentevents\\10.0.0\\system.net.serversentevents.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encodings.web\\10.0.0\\system.text.encodings.web.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.text.json\\10.0.0\\system.text.json.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.channels\\10.0.0\\system.threading.channels.10.0.0.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.netcore.app.runtime.win-x64\\8.0.19\\microsoft.netcore.app.runtime.win-x64.8.0.19.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.windowsdesktop.app.runtime.win-x64\\8.0.19\\microsoft.windowsdesktop.app.runtime.win-x64.8.0.19.nupkg.sha512", - "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.app.runtime.win-x64\\8.0.19\\microsoft.aspnetcore.app.runtime.win-x64.8.0.19.nupkg.sha512" - ], - "logs": [] +{ + "version": 2, + "dgSpecHash": "tkEl1r4m+Ks=", + "success": true, + "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\SignalRTest\\SignalRTest.csproj", + "expectedPackageFiles": [ + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.connections.abstractions\\10.0.0\\microsoft.aspnetcore.connections.abstractions.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.client\\10.0.0\\microsoft.aspnetcore.http.connections.client.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.http.connections.common\\10.0.0\\microsoft.aspnetcore.http.connections.common.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client\\10.0.0\\microsoft.aspnetcore.signalr.client.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.client.core\\10.0.0\\microsoft.aspnetcore.signalr.client.core.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.common\\10.0.0\\microsoft.aspnetcore.signalr.common.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.signalr.protocols.json\\10.0.0\\microsoft.aspnetcore.signalr.protocols.json.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\10.0.0\\microsoft.bcl.asyncinterfaces.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.bcl.timeprovider\\10.0.0\\microsoft.bcl.timeprovider.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\10.0.0\\microsoft.extensions.dependencyinjection.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\10.0.0\\microsoft.extensions.dependencyinjection.abstractions.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.features\\10.0.0\\microsoft.extensions.features.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging\\10.0.0\\microsoft.extensions.logging.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\10.0.0\\microsoft.extensions.logging.abstractions.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.options\\10.0.0\\microsoft.extensions.options.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.extensions.primitives\\10.0.0\\microsoft.extensions.primitives.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.net.illink.tasks\\8.0.19\\microsoft.net.illink.tasks.8.0.19.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.diagnostics.diagnosticsource\\10.0.0\\system.diagnostics.diagnosticsource.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.io.pipelines\\10.0.0\\system.io.pipelines.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.net.serversentevents\\10.0.0\\system.net.serversentevents.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.encodings.web\\10.0.0\\system.text.encodings.web.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.text.json\\10.0.0\\system.text.json.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\system.threading.channels\\10.0.0\\system.threading.channels.10.0.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.netcore.app.runtime.win-x64\\8.0.19\\microsoft.netcore.app.runtime.win-x64.8.0.19.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.windowsdesktop.app.runtime.win-x64\\8.0.19\\microsoft.windowsdesktop.app.runtime.win-x64.8.0.19.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\microsoft.aspnetcore.app.runtime.win-x64\\8.0.19\\microsoft.aspnetcore.app.runtime.win-x64.8.0.19.nupkg.sha512" + ], + "logs": [] } \ No newline at end of file diff --git a/docs/ER图.drawio b/docs/ER图.drawio index 4a22d5a..db20250 100644 --- a/docs/ER图.drawio +++ b/docs/ER图.drawio @@ -1,1094 +1,1094 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/IM 系统消息存储与推送策略文档.md b/docs/IM 系统消息存储与推送策略文档.md index e50bc50..b76cd49 100644 --- a/docs/IM 系统消息存储与推送策略文档.md +++ b/docs/IM 系统消息存储与推送策略文档.md @@ -1,141 +1,141 @@ -# IM 系统消息存储与推送策略文档 - -## 1. 概述 - -本策略文档定义了 **消息在系统中的存储、读取和推送流程**,目标是: - -- 保证 **消息实时性** -- 支持 **离线消息存储与同步** -- 支持 **多端登录同步** -- 支持 **单聊、群聊及系统消息** - ------- - -## 2. 消息存储策略 - -### 2.1 消息表设计 - -表结构参考前期设计: - -| 表名 | 作用 | -| ------------ | ------------------------------------------------------------ | -| Messages | 存储所有聊天消息(单聊/群聊) | -| Conversation | 缓存用户最近会话信息(last_message_id, target_id, unread_count) | -| Files | 附件 / 图片 / 语音存储URL | - ------- - -### 2.2 消息存储规则 - -1. **单聊消息** - - 写入 `Messages` 表 - - 更新发送者和接收者 `Conversation` 表 - - 更新 `UnreadCount` -2. **群聊消息** - - 写入 `Messages` 表 - - 更新群成员对应的 `Conversation` 表(except 发送者) - - 更新每个成员的 `UnreadCount` -3. **文件消息** - - 文件存储到对象存储(OSS/S3/MinIO) - - `Messages.Content` 存文件 URL + metadata -4. **消息撤回** - - 消息允许撤回时,修改 `message.status = 1 - - 更新 `Conversation.LastMessageId`(如撤回的是最后一条消息) - ------- - -## 3. 消息推送策略 - -### 3.1 推送原则 - -- **实时性**:在线用户立即通过 WebSocket 推送 -- **可靠性**:离线用户存储消息,登录时同步 -- **顺序保证**:消息按 `timestamp` 或 `messageId` 顺序发送 -- **幂等性**:客户端可根据 `messageId` 去重 - ------- - -### 3.2 单聊推送流程 - -1. 发送者通过 WebSocket 或 HTTP API 发送消息 -2. 服务端写入 `Messages` 表 -3. 查询接收者是否在线 - - **在线**:通过 WebSocket 推送 - - **离线**:存储到 Redis 或 `Conversation.UnreadCount` -4. 接收者收到消息后发送 `MESSAGE_ACK` -5. //暂不要求:更新消息状态(已送达 / 已读) - ------- - -### 3.3 群聊推送流程 - -1. 发送者发送群消息 -2. 服务端写入 `Message`s 表 -3. 查询群成员列表(`GroupMember` 表) -4. 遍历成员: - - **在线成员**:WebSocket 推送 - - **离线成员**:增加 `UnreadCount`,保存在 Redis/数据库 -5. //暂不要求:接收者回 ACK 后更新 `message_receipt`(已读) - ------- - -### 3.4 离线消息处理 - -- 离线消息存储位置: - 1. 数据库 `Messages` 表(长期保存) - 2. Redis 缓存(短期加速推送) -- 客户端上线时: - 1. 请求 `/syncMessages` 接口 - 2. 返回未读消息 + 未读计数 -- 消息同步完成后清除缓存或更新状态 - ------- - -### 3.5 多端同步策略 - -- 每个设备维护独立的 `deviceId` -- WebSocket 推送时: - - 排除发送设备 - - 推送给同账号其他设备 -- //暂不要求:消息回执: - - 每端发送 ACK - - 服务端更新 `Voncers` 和 `message_receipt` - ------- - -## 4. 消息可靠性保障 - -| 场景 | 解决方案 | -| ------------------ | ---------------------------------- | -| 消息丢失 | 发送端生成 `requestId`,服务端去重 | -| 消息顺序错乱 | 按 `messageId` 或 `timestamp` 排序 | -| WebSocket 异常断开 | 客户端重连后同步离线消息 | -| 群聊大消息量 | 异步推送 + 批量 ACK | - ------- - -## 5. //暂不要求:高性能优化策略 - -1. **消息表索引**:`(chat_type, to_id, created_at)` -2. **会话表缓存**:`conversation` 表避免全表查询 -3. **Redis 缓存**:用户在线状态、未读消息数 -4. **分表/分库**:按月或按用户分表 -5. **异步推送队列**:消息通过 MQ(Kafka/RabbitMQ)推送,保证高并发 - ------- - -## 6. 消息撤回与删除策略 - -1. **撤回条件**:超时限制( 2 分钟内可撤回) -2. **撤回操作**: - - 更新 `message.status = 1` - - 更新 `Conversation.LastMessageId` - - 推送撤回事件到在线用户 - ------- - -## 7. 系统消息与通知策略 - -- 系统消息(好友申请、群邀请、公告)走 **同样的消息推送流程** -- 保留在 `Notification` 表 +# IM 系统消息存储与推送策略文档 + +## 1. 概述 + +本策略文档定义了 **消息在系统中的存储、读取和推送流程**,目标是: + +- 保证 **消息实时性** +- 支持 **离线消息存储与同步** +- 支持 **多端登录同步** +- 支持 **单聊、群聊及系统消息** + +------ + +## 2. 消息存储策略 + +### 2.1 消息表设计 + +表结构参考前期设计: + +| 表名 | 作用 | +| ------------ | ------------------------------------------------------------ | +| Messages | 存储所有聊天消息(单聊/群聊) | +| Conversation | 缓存用户最近会话信息(last_message_id, target_id, unread_count) | +| Files | 附件 / 图片 / 语音存储URL | + +------ + +### 2.2 消息存储规则 + +1. **单聊消息** + - 写入 `Messages` 表 + - 更新发送者和接收者 `Conversation` 表 + - 更新 `UnreadCount` +2. **群聊消息** + - 写入 `Messages` 表 + - 更新群成员对应的 `Conversation` 表(except 发送者) + - 更新每个成员的 `UnreadCount` +3. **文件消息** + - 文件存储到对象存储(OSS/S3/MinIO) + - `Messages.Content` 存文件 URL + metadata +4. **消息撤回** + - 消息允许撤回时,修改 `message.status = 1 + - 更新 `Conversation.LastMessageId`(如撤回的是最后一条消息) + +------ + +## 3. 消息推送策略 + +### 3.1 推送原则 + +- **实时性**:在线用户立即通过 WebSocket 推送 +- **可靠性**:离线用户存储消息,登录时同步 +- **顺序保证**:消息按 `timestamp` 或 `messageId` 顺序发送 +- **幂等性**:客户端可根据 `messageId` 去重 + +------ + +### 3.2 单聊推送流程 + +1. 发送者通过 WebSocket 或 HTTP API 发送消息 +2. 服务端写入 `Messages` 表 +3. 查询接收者是否在线 + - **在线**:通过 WebSocket 推送 + - **离线**:存储到 Redis 或 `Conversation.UnreadCount` +4. 接收者收到消息后发送 `MESSAGE_ACK` +5. //暂不要求:更新消息状态(已送达 / 已读) + +------ + +### 3.3 群聊推送流程 + +1. 发送者发送群消息 +2. 服务端写入 `Message`s 表 +3. 查询群成员列表(`GroupMember` 表) +4. 遍历成员: + - **在线成员**:WebSocket 推送 + - **离线成员**:增加 `UnreadCount`,保存在 Redis/数据库 +5. //暂不要求:接收者回 ACK 后更新 `message_receipt`(已读) + +------ + +### 3.4 离线消息处理 + +- 离线消息存储位置: + 1. 数据库 `Messages` 表(长期保存) + 2. Redis 缓存(短期加速推送) +- 客户端上线时: + 1. 请求 `/syncMessages` 接口 + 2. 返回未读消息 + 未读计数 +- 消息同步完成后清除缓存或更新状态 + +------ + +### 3.5 多端同步策略 + +- 每个设备维护独立的 `deviceId` +- WebSocket 推送时: + - 排除发送设备 + - 推送给同账号其他设备 +- //暂不要求:消息回执: + - 每端发送 ACK + - 服务端更新 `Voncers` 和 `message_receipt` + +------ + +## 4. 消息可靠性保障 + +| 场景 | 解决方案 | +| ------------------ | ---------------------------------- | +| 消息丢失 | 发送端生成 `requestId`,服务端去重 | +| 消息顺序错乱 | 按 `messageId` 或 `timestamp` 排序 | +| WebSocket 异常断开 | 客户端重连后同步离线消息 | +| 群聊大消息量 | 异步推送 + 批量 ACK | + +------ + +## 5. //暂不要求:高性能优化策略 + +1. **消息表索引**:`(chat_type, to_id, created_at)` +2. **会话表缓存**:`conversation` 表避免全表查询 +3. **Redis 缓存**:用户在线状态、未读消息数 +4. **分表/分库**:按月或按用户分表 +5. **异步推送队列**:消息通过 MQ(Kafka/RabbitMQ)推送,保证高并发 + +------ + +## 6. 消息撤回与删除策略 + +1. **撤回条件**:超时限制( 2 分钟内可撤回) +2. **撤回操作**: + - 更新 `message.status = 1` + - 更新 `Conversation.LastMessageId` + - 推送撤回事件到在线用户 + +------ + +## 7. 系统消息与通知策略 + +- 系统消息(好友申请、群邀请、公告)走 **同样的消息推送流程** +- 保留在 `Notification` 表 - 支持离线同步 \ No newline at end of file diff --git a/docs/IM 系统鉴权与 Token 安全规范文档.md b/docs/IM 系统鉴权与 Token 安全规范文档.md index 2ece4d2..92aa5b3 100644 --- a/docs/IM 系统鉴权与 Token 安全规范文档.md +++ b/docs/IM 系统鉴权与 Token 安全规范文档.md @@ -1,115 +1,115 @@ -# IM 系统鉴权与 Token 安全规范文档 - -## 1. 概述 - -本规范用于确保系统用户身份验证、消息安全和多端同步安全。 - 鉴权体系采用 **Token(JWT 或自定义) + HTTPS/WebSocket** 方式。 - ------- - -## 2. 鉴权方式选择 - -| 方法 | -| -------------------------------------- | -| JWT(JSON Web Token)+ Redis黑名单机制 | - ------- - -## 3. Token 生成规则 - -### 3.1 Token 内容结构(JWT 示例) - -``` -{ - "userId": 1001, // 用户ID - "iat": 1700000000, // 签发时间(Unix时间戳) - "exp": 1700003600, // 过期时间 - "deviceId": "uuid-xxxx", // 设备ID,用于多端区分 - "role": "user" // 角色 -} -``` - -- **签名算法**:HMAC-SHA256 或 RSA -- **签名秘钥**:服务端统一管理,不暴露给客户端 - ------- - -### 3.2 Token 生成流程 - -1. 用户登录(用户名/密码) -2. 验证用户名与密码正确 -3. 生成 Token,写入 Redis(可选) -4. 返回 Token 给客户端 - -**响应示例**: - -``` -{ - "code": 0, - "message": "登录成功", - "data": { - "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." - } -} -``` - ------- - -## 4. Token 使用 - -### 4.1 HTTP 接口鉴权 - -- 客户端请求带上 Header: - -``` -Authorization: Bearer -``` - -- 后端解析 Token: - 1. 校验签名 - 2. 校验 exp 是否过期 - 3. 校验 Redis 黑名单(可选) -- 不通过返回 401 / code 1006 - ------- - -### 4.2 WebSocket 鉴权 - -- 建立连接时通过 Query 或 Header 传 Token: - -``` -ws://example.com/ws?token=xxxx&deviceId=uuid-001 -``` - -- 握手阶段: - 1. 服务器验证 Token - 2. 成功返回 AUTH_SUCCESS - 3. 失败返回 AUTH_FAIL 并关闭连接 - ------- - -## 5. Token 过期策略 - -| 类型 | 建议值 | 说明 | -| ------------------ | ---------------------- | ---------------------------------------- | -| 短期 Token | 30 分钟 ~ 1 小时 | 防止长时间泄露 | -| 长期 Refresh Token | 7 ~ 30 天 | 用于获取新 Token,安全性高 | -| WebSocket 长连接 | Token 与短期有效期一致 | 客户端定期刷新 Token(心跳或重连时验证) | - -### 5.1 Token 刷新流程 - -1. 客户端 Token 快过期时,调用刷新接口 -2. 服务端验证 Refresh Token -3. 返回新 Token,更新 Redis / 黑名单 - ------- - -## 6. 多端登录处理 - -- **每个设备对应一个 deviceId** -- Token 中绑定 deviceId -- 多端策略: - 1. **允许多端同时登录**:每端单独维护 Token - 2. **限制单端登录**:新登录覆盖旧设备 Token - 3. **设备列表管理**:可查看在线设备并强制下线 - +# IM 系统鉴权与 Token 安全规范文档 + +## 1. 概述 + +本规范用于确保系统用户身份验证、消息安全和多端同步安全。 + 鉴权体系采用 **Token(JWT 或自定义) + HTTPS/WebSocket** 方式。 + +------ + +## 2. 鉴权方式选择 + +| 方法 | +| -------------------------------------- | +| JWT(JSON Web Token)+ Redis黑名单机制 | + +------ + +## 3. Token 生成规则 + +### 3.1 Token 内容结构(JWT 示例) + +``` +{ + "userId": 1001, // 用户ID + "iat": 1700000000, // 签发时间(Unix时间戳) + "exp": 1700003600, // 过期时间 + "deviceId": "uuid-xxxx", // 设备ID,用于多端区分 + "role": "user" // 角色 +} +``` + +- **签名算法**:HMAC-SHA256 或 RSA +- **签名秘钥**:服务端统一管理,不暴露给客户端 + +------ + +### 3.2 Token 生成流程 + +1. 用户登录(用户名/密码) +2. 验证用户名与密码正确 +3. 生成 Token,写入 Redis(可选) +4. 返回 Token 给客户端 + +**响应示例**: + +``` +{ + "code": 0, + "message": "登录成功", + "data": { + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." + } +} +``` + +------ + +## 4. Token 使用 + +### 4.1 HTTP 接口鉴权 + +- 客户端请求带上 Header: + +``` +Authorization: Bearer +``` + +- 后端解析 Token: + 1. 校验签名 + 2. 校验 exp 是否过期 + 3. 校验 Redis 黑名单(可选) +- 不通过返回 401 / code 1006 + +------ + +### 4.2 WebSocket 鉴权 + +- 建立连接时通过 Query 或 Header 传 Token: + +``` +ws://example.com/ws?token=xxxx&deviceId=uuid-001 +``` + +- 握手阶段: + 1. 服务器验证 Token + 2. 成功返回 AUTH_SUCCESS + 3. 失败返回 AUTH_FAIL 并关闭连接 + +------ + +## 5. Token 过期策略 + +| 类型 | 建议值 | 说明 | +| ------------------ | ---------------------- | ---------------------------------------- | +| 短期 Token | 30 分钟 ~ 1 小时 | 防止长时间泄露 | +| 长期 Refresh Token | 7 ~ 30 天 | 用于获取新 Token,安全性高 | +| WebSocket 长连接 | Token 与短期有效期一致 | 客户端定期刷新 Token(心跳或重连时验证) | + +### 5.1 Token 刷新流程 + +1. 客户端 Token 快过期时,调用刷新接口 +2. 服务端验证 Refresh Token +3. 返回新 Token,更新 Redis / 黑名单 + +------ + +## 6. 多端登录处理 + +- **每个设备对应一个 deviceId** +- Token 中绑定 deviceId +- 多端策略: + 1. **允许多端同时登录**:每端单独维护 Token + 2. **限制单端登录**:新登录覆盖旧设备 Token + 3. **设备列表管理**:可查看在线设备并强制下线 + diff --git a/docs/vue3组件文档.md b/docs/vue3组件文档.md index a3631dd..aebf979 100644 --- a/docs/vue3组件文档.md +++ b/docs/vue3组件文档.md @@ -1,150 +1,150 @@ -# 📚 MyButton - -## 🏷️ 1. 组件概览 - -### 基础信息 - -| **属性** | **值** | -| ------------ | ---------------------------------------------------------- | -| **组件名称** | `MyButton` | -| **文件路径** | `@/components/MyButton.vue` | -| **用途** | 封装项目中的所有交互按钮,提供统一的样式、交互状态和动画。 | -| **版本** | v1.0.0 | -| **核心依赖** | `feather-icons` (需要父组件或全局初始化) | - -### 引入方式 - -JavaScript - -``` -import MyButton from '@/components/MyButton.vue'; -``` - -## 💡 2. 使用示例 - -### 基础用法(Primary Variant) - -HTML - -``` -保存配置 - - - - 发送邮件 - -``` - -### 状态和事件绑定 - -HTML - -``` - - 取消 - - - - 删除数据 - -``` - -## ⚙️ 3. Props 属性说明 (API) - -| **名称 (Prop Name)** | **类型 (Type)** | **可选值/说明** | **默认值 (Default)** | **描述** | -| -------------------- | --------------- | ------------------------------------------------------------ | -------------------- | -------------------------------------------------------- | -| `variant` | `String` | `primary` (主色调), `secondary` (次要/灰色), `danger` (危险/红色), `text` (纯文本链接样式) | `'primary'` | 定义按钮的外观和主题颜色。 | -| `disabled` | `Boolean` | — | `false` | 明确禁用按钮,移除点击交互和视觉提示。 | -| `loading` | `Boolean` | — | `false` | 设置为 `true` 时,按钮显示加载状态,并自动应用禁用样式。 | - -## 🧩 4. 插槽说明 (Slots) - -| **名称 (Slot Name)** | **用途** | **插槽 Prop** | **示例用法** | -| -------------------- | ------------------------------------------ | ------------- | --------------------------------- | -| **默认** (`default`) | 用于插入按钮的**文本内容**或其他核心元素。 | 无 | ` 按钮文本 ` | - -## ⚡ 5. 事件说明 (Events) - -| **名称 (Event Name)** | **参数 (Payload)** | **描述** | -| --------------------- | --------------------- | ------------------------------------------------------------ | -| `@click` | `(event: MouseEvent)` | 按钮被点击时触发。由于使用了 `v-bind="attrs"`,此事件是透传自内部 `