From ad6f399066a747aeaba987360bce9ee40227302c Mon Sep 17 00:00:00 2001
From: 肖洋 <cathay_xy@163.com>
Date: 星期一, 09 十二月 2024 18:23:00 +0800
Subject: [PATCH] SignalR+事件总线推送前端

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj                                                         |    1 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.g.targets                                   |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/WIDESEAWCS_Model.csproj.nuget.g.targets                                     |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs                                                    |   15 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj                                                           |    7 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs                                                                 |    6 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.g.targets             |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.g.targets                             |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs                                        |   30 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs                            |   28 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/WIDESEAWCS_ITaskInfoService.csproj.nuget.g.targets               |   16 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs                                       |   45 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj                                                       |    3 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.g.targets               |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs                                  |   28 
 Code Management/WCS/WIDESEAWCS_Client/src/api/http.js                                                                                  |    2 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln                                                                            |    6 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/WIDESEAWCS_TaskInfo_HtyRepository.csproj.nuget.g.targets   |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/WIDESEAWCS_ITaskInfoRepository.csproj.nuget.g.targets         |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.nuget.g.targets |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/WIDESEAWCS_BasicInfoService.csproj.nuget.g.targets               |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/WIDESEAWCS_Core.csproj.nuget.g.targets                                       |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.g.targets                                     |   16 
 Code Management/WCS/WIDESEAWCS_Client/src/views/Index.vue                                                                              |    4 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/ISimpleHub.cs                                                             |   35 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.g.targets       |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/INoticeService.cs                                                     |   54 +
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/SignalrNoticeService.cs                                               |   63 +
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/bin/Debug/net6.0/WIDESEAWCS_Core.deps.json                                       | 1656 +++++++++++++++++++++++++++++++------
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Provider/UserIdProvider.cs                                                    |   48 +
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.BuildWithSkipAnalyzers             |    0 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.g.targets             |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/WIDESEAWCS_SignalR.csproj                                                     |   13 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.g.targets            |   16 
 Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue                                                                               |   10 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/WIDESEAWCS_BasicInfoRepository.csproj.nuget.g.targets         |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs                                        |   39 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/WIDESEAWCS_SignalR.csproj.nuget.g.targets                                 |   22 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.g.targets                   |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/WIDESEAWCS_ISystemServices.csproj.nuget.g.targets                 |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.g.targets             |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/WIDESEAWCS_DTO.csproj.nuget.g.targets                                         |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.g.targets                 |   16 
 Code Management/WCS/WIDESEAWCS_Client/package.json                                                                                     |    1 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/WIDESEAWCS_ITaskInfo_HtyService.csproj.nuget.g.targets       |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs                                                                     |    9 
 项目资料/通信协议/WCS-输送交互表2024-3-26.V1.xlsx                                                                                                   |    0 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/WIDESEAWCS_TaskInfo_HtyService.csproj.nuget.g.targets         |   16 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/GlobalUsing.cs                                                                |    9 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/SimpleHub.cs                                                              |  119 ++
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.g.targets           |   16 
 51 files changed, 2,325 insertions(+), 312 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Client/package.json b/Code Management/WCS/WIDESEAWCS_Client/package.json
index 336ff17..93990d1 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/package.json
+++ b/Code Management/WCS/WIDESEAWCS_Client/package.json
@@ -17,6 +17,7 @@
     "echarts": "^5.0.2",
     "element-plus": "^2.2.14",
     "less": "^4.1.1",
+    "mitt": "^3.0.1",
     "vue": "^3.2.37",
     "vue-draggable-next": "^2.0.1",
     "vue-router": "^4.0.0-0",
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js b/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
index be41039..f7d9a09 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
@@ -20,7 +20,7 @@
 }
 
 else if (process.env.NODE_ENV == 'production') {
-    axios.defaults.baseURL = 'http://192.168.5.251:9291/';
+    axios.defaults.baseURL = 'http://192.168.20.251:9291/';
 }
 if (!axios.defaults.baseURL.endsWith('/')) {
     axios.defaults.baseURL+="/";
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue
index 820437a..2d83b3c 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Home.vue
@@ -4,12 +4,18 @@
 
 <script>
 import { ref, reactive } from 'vue'
-
+import eventBus from "../uitils/eventBus";
 export default {
   setup() {
     return {
-
     }
+
+    eventBus.on('stackerData', eventData => {
+        console.log(eventData);
+    })
+    eventBus.on('locationData', eventData => {
+        console.log(eventData);
+    })
   }
 }
 </script>
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Index.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Index.vue
index e59ef4f..5095cc7 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Index.vue
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Index.vue
@@ -135,6 +135,7 @@
 import { useRouter, useRoute } from "vue-router";
 import store from "../store/index";
 import http from "@/../src/api/http.js";
+import useSignalr from '../uitils/signalr.js';
 export default defineComponent({
   components: {
     VolMenu,
@@ -520,6 +521,9 @@
           });
         }
 
+        const { startSignalr } = useSignalr()
+        startSignalr()
+        
         //褰撳墠鍒锋柊鏄笉鏄椤�
         if (router.currentRoute.value.path != navigation[0].path) {
           //鏌ユ壘绯荤粺鑿滃崟
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/WIDESEAWCS_BasicInfoRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/WIDESEAWCS_BasicInfoRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/WIDESEAWCS_BasicInfoRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/WIDESEAWCS_BasicInfoRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/WIDESEAWCS_BasicInfoService.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/WIDESEAWCS_BasicInfoService.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/WIDESEAWCS_BasicInfoService.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/WIDESEAWCS_BasicInfoService.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs
index e91a216..b35aa33 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/HttpContextUser/AspNetUser.cs
@@ -123,5 +123,20 @@
         public string UserTrueName { get; set; }
 
         public string HeadImageUrl { get; set; }
+
+        /// <summary>
+        /// 浣跨敤涓嬮潰鐨凞eptIds瀛楁
+        /// </summary>
+
+        [Obsolete]
+
+        public int DeptId { get; set; }
+
+
+        public List<Guid> DeptIds { get; set; }
+
+        public string Token { get; set; }
+
+        public string Token_ID { get; set; }
     }
 }
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
index f338ba6..46e58a2 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
@@ -14,16 +14,19 @@
 		<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="9.0.0" />
 		<PackageReference Include="Autofac.Extras.DynamicProxy" Version="7.1.0" />
 		<PackageReference Include="AutoMapper" Version="13.0.1" />
+		<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.5" />
 		<PackageReference Include="Magicodes.IE.EPPlus" Version="2.7.5.1" />
 		<PackageReference Include="Magicodes.IE.Excel" Version="2.7.5.1" />
+		<PackageReference Include="Masuit.Tools.Core" Version="2024.6.0" />
 		<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.29" />
-		<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
+		<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="6.0.2" />
 		<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.3.8" />
+		<PackageReference Include="MoYu.Pure" Version="4.9.5.5" />
 		<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
 		<PackageReference Include="OfficeOpenXml.Core.ExcelPackage" Version="1.0.0" />
 		<PackageReference Include="SkiaSharp" Version="2.88.8" />
 		<PackageReference Include="SqlSugarCore" Version="5.1.4.152" />
-		<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
+		<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.2" />
 		<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="7.0.5" />
 		<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.5.0" />
 		<PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.0" />
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/bin/Debug/net6.0/WIDESEAWCS_Core.deps.json b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/bin/Debug/net6.0/WIDESEAWCS_Core.deps.json
index 4128870..9dbbb58 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/bin/Debug/net6.0/WIDESEAWCS_Core.deps.json
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/bin/Debug/net6.0/WIDESEAWCS_Core.deps.json
@@ -12,16 +12,19 @@
           "Autofac": "8.0.0",
           "Autofac.Extensions.DependencyInjection": "9.0.0",
           "Autofac.Extras.DynamicProxy": "7.1.0",
+          "Furion.Extras.ObjectMapper.Mapster": "4.9.5",
           "Magicodes.IE.EPPlus": "2.7.5.1",
           "Magicodes.IE.Excel": "2.7.5.1",
+          "Masuit.Tools.Core": "2024.6.0",
           "Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.29",
-          "Microsoft.Extensions.DependencyInjection": "6.0.0",
+          "Microsoft.Extensions.DependencyInjection": "6.0.2",
           "MiniProfiler.AspNetCore.Mvc": "4.3.8",
+          "MoYu.Pure": "4.9.5.5",
           "Newtonsoft.Json": "13.0.3",
           "OfficeOpenXml.Core.ExcelPackage": "1.0.0",
           "SkiaSharp": "2.88.8",
           "SqlSugarCore": "5.1.4.152",
-          "Swashbuckle.AspNetCore": "6.5.0",
+          "Swashbuckle.AspNetCore": "6.7.2",
           "Swashbuckle.AspNetCore.Filters": "7.0.5",
           "Swashbuckle.AspNetCore.Newtonsoft": "6.5.0",
           "System.Linq.Dynamic.Core": "1.3.0",
@@ -31,6 +34,28 @@
         },
         "runtime": {
           "WIDESEAWCS_Core.dll": {}
+        }
+      },
+      "AngleSharp/1.1.2": {
+        "dependencies": {
+          "System.Text.Encoding.CodePages": "7.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/AngleSharp.dll": {
+            "assemblyVersion": "1.1.2.0",
+            "fileVersion": "1.1.2.0"
+          }
+        }
+      },
+      "AngleSharp.Css/1.0.0-beta.139": {
+        "dependencies": {
+          "AngleSharp": "1.1.2"
+        },
+        "runtime": {
+          "lib/net6.0/AngleSharp.Css.dll": {
+            "assemblyVersion": "1.0.0.0",
+            "fileVersion": "1.0.0.0"
+          }
         }
       },
       "Autofac/8.0.0": {
@@ -70,12 +95,23 @@
       },
       "AutoMapper/13.0.1": {
         "dependencies": {
-          "Microsoft.Extensions.Options": "6.0.0"
+          "Microsoft.Extensions.Options": "6.0.1"
         },
         "runtime": {
           "lib/net6.0/AutoMapper.dll": {
             "assemblyVersion": "13.0.0.0",
             "fileVersion": "13.0.1.0"
+          }
+        }
+      },
+      "Ben.Demystifier/0.4.1": {
+        "dependencies": {
+          "System.Reflection.Metadata": "8.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.1/Ben.Demystifier.dll": {
+            "assemblyVersion": "0.4.0.0",
+            "fileVersion": "0.4.0.2"
           }
         }
       },
@@ -90,6 +126,14 @@
           }
         }
       },
+      "DnsClient/1.8.0": {
+        "runtime": {
+          "lib/net6.0/DnsClient.dll": {
+            "assemblyVersion": "1.8.0.0",
+            "fileVersion": "1.8.0.0"
+          }
+        }
+      },
       "DynamicExpresso.Core/2.3.3": {
         "dependencies": {
           "Microsoft.CSharp": "4.7.0"
@@ -101,11 +145,32 @@
           }
         }
       },
+      "Furion.Extras.ObjectMapper.Mapster/4.9.5": {
+        "dependencies": {
+          "Mapster": "7.4.0",
+          "Mapster.DependencyInjection": "1.0.1",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/Furion.Extras.ObjectMapper.Mapster.dll": {
+            "assemblyVersion": "4.9.5.0",
+            "fileVersion": "4.9.5.0"
+          }
+        }
+      },
+      "Humanizer.Core/2.14.1": {
+        "runtime": {
+          "lib/net6.0/Humanizer.dll": {
+            "assemblyVersion": "2.14.0.0",
+            "fileVersion": "2.14.1.48190"
+          }
+        }
+      },
       "Magicodes.IE.Core/2.7.5.1": {
         "dependencies": {
-          "Microsoft.Extensions.DependencyInjection": "6.0.0",
+          "Microsoft.Extensions.DependencyInjection": "6.0.2",
           "Microsoft.Extensions.DependencyModel": "6.0.0",
-          "SixLabors.ImageSharp": "3.0.0",
+          "SixLabors.ImageSharp": "3.1.5",
           "System.ComponentModel.Annotations": "4.7.0"
         },
         "runtime": {
@@ -123,10 +188,10 @@
       "Magicodes.IE.EPPlus/2.7.5.1": {
         "dependencies": {
           "Microsoft.IO.RecyclableMemoryStream": "2.1.1",
-          "SixLabors.ImageSharp": "3.0.0",
+          "SixLabors.ImageSharp": "3.1.5",
           "SkiaSharp": "2.88.8",
           "System.Security.Cryptography.Pkcs": "6.0.3",
-          "System.Text.Encoding.CodePages": "6.0.0"
+          "System.Text.Encoding.CodePages": "7.0.0"
         },
         "runtime": {
           "lib/net6.0/Magicodes.IE.EPPlus.dll": {
@@ -150,6 +215,72 @@
           }
         }
       },
+      "Mapster/7.4.0": {
+        "dependencies": {
+          "Mapster.Core": "1.2.1"
+        },
+        "runtime": {
+          "lib/net6.0/Mapster.dll": {
+            "assemblyVersion": "7.4.0.0",
+            "fileVersion": "7.4.0.0"
+          }
+        }
+      },
+      "Mapster.Core/1.2.1": {
+        "runtime": {
+          "lib/net6.0/Mapster.Core.dll": {
+            "assemblyVersion": "1.2.1.0",
+            "fileVersion": "1.2.1.0"
+          }
+        }
+      },
+      "Mapster.DependencyInjection/1.0.1": {
+        "dependencies": {
+          "Mapster": "7.4.0",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/Mapster.DependencyInjection.dll": {
+            "assemblyVersion": "1.0.1.0",
+            "fileVersion": "1.0.1.0"
+          }
+        }
+      },
+      "Masuit.Tools.Abstractions/2024.6.0": {
+        "dependencies": {
+          "AngleSharp": "1.1.2",
+          "AngleSharp.Css": "1.0.0-beta.139",
+          "Castle.Core": "5.1.1",
+          "DnsClient": "1.8.0",
+          "Microsoft.CSharp": "4.7.0",
+          "Microsoft.Extensions.Configuration.Json": "9.0.0",
+          "Newtonsoft.Json": "13.0.3",
+          "SharpCompress": "0.38.0",
+          "SixLabors.ImageSharp.Drawing": "2.1.4",
+          "System.Collections.Immutable": "8.0.0",
+          "System.Diagnostics.PerformanceCounter": "7.0.0",
+          "System.Management": "9.0.0",
+          "System.Reflection.Emit.Lightweight": "4.7.0"
+        },
+        "runtime": {
+          "lib/net6.0/Masuit.Tools.Abstractions.dll": {
+            "assemblyVersion": "2.5.9.0",
+            "fileVersion": "2.5.9.0"
+          }
+        }
+      },
+      "Masuit.Tools.Core/2024.6.0": {
+        "dependencies": {
+          "Masuit.Tools.Abstractions": "2024.6.0",
+          "Microsoft.EntityFrameworkCore": "6.0.36"
+        },
+        "runtime": {
+          "lib/net6.0/Masuit.Tools.Core.dll": {
+            "assemblyVersion": "2.5.9.0",
+            "fileVersion": "2.5.9.1"
+          }
+        }
+      },
       "Microsoft.AspNetCore.Authentication.JwtBearer/6.0.29": {
         "dependencies": {
           "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.35.0"
@@ -161,28 +292,300 @@
           }
         }
       },
-      "Microsoft.AspNetCore.JsonPatch/6.0.0-rc.1.21452.15": {
+      "Microsoft.AspNetCore.JsonPatch/6.0.33": {
         "dependencies": {
           "Microsoft.CSharp": "4.7.0",
           "Newtonsoft.Json": "13.0.3"
         },
         "runtime": {
           "lib/net6.0/Microsoft.AspNetCore.JsonPatch.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.45215"
+            "assemblyVersion": "6.0.33.0",
+            "fileVersion": "6.0.3324.37905"
           }
         }
       },
-      "Microsoft.AspNetCore.Mvc.NewtonsoftJson/6.0.0-rc.1.21452.15": {
+      "Microsoft.AspNetCore.Mvc.NewtonsoftJson/6.0.33": {
         "dependencies": {
-          "Microsoft.AspNetCore.JsonPatch": "6.0.0-rc.1.21452.15",
+          "Microsoft.AspNetCore.JsonPatch": "6.0.33",
           "Newtonsoft.Json": "13.0.3",
           "Newtonsoft.Json.Bson": "1.0.2"
         },
         "runtime": {
           "lib/net6.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.45215"
+            "assemblyVersion": "6.0.33.0",
+            "fileVersion": "6.0.3324.37905"
+          }
+        }
+      },
+      "Microsoft.AspNetCore.Razor.Language/6.0.33": {
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.AspNetCore.Razor.Language.dll": {
+            "assemblyVersion": "6.0.33.0",
+            "fileVersion": "6.0.3324.37905"
+          }
+        }
+      },
+      "Microsoft.Bcl.AsyncInterfaces/9.0.0": {
+        "runtime": {
+          "lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
+      "Microsoft.CodeAnalysis.Common/4.11.0": {
+        "dependencies": {
+          "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+          "System.Buffers": "4.5.1",
+          "System.Collections.Immutable": "8.0.0",
+          "System.Memory": "4.5.5",
+          "System.Numerics.Vectors": "4.5.0",
+          "System.Reflection.Metadata": "8.0.0",
+          "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+          "System.Text.Encoding.CodePages": "7.0.0",
+          "System.Threading.Tasks.Extensions": "4.5.4"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.CodeAnalysis.dll": {
+            "assemblyVersion": "4.11.0.0",
+            "fileVersion": "4.1100.24.37604"
+          }
+        },
+        "resources": {
+          "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "cs"
+          },
+          "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "de"
+          },
+          "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "es"
+          },
+          "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "fr"
+          },
+          "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "it"
+          },
+          "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "ja"
+          },
+          "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "ko"
+          },
+          "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "pl"
+          },
+          "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "pt-BR"
+          },
+          "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "ru"
+          },
+          "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "tr"
+          },
+          "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "zh-Hans"
+          },
+          "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+            "locale": "zh-Hant"
+          }
+        }
+      },
+      "Microsoft.CodeAnalysis.CSharp/4.11.0": {
+        "dependencies": {
+          "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+          "Microsoft.CodeAnalysis.Common": "4.11.0",
+          "System.Buffers": "4.5.1",
+          "System.Collections.Immutable": "8.0.0",
+          "System.Memory": "4.5.5",
+          "System.Numerics.Vectors": "4.5.0",
+          "System.Reflection.Metadata": "8.0.0",
+          "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+          "System.Text.Encoding.CodePages": "7.0.0",
+          "System.Threading.Tasks.Extensions": "4.5.4"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": {
+            "assemblyVersion": "4.11.0.0",
+            "fileVersion": "4.1100.24.37604"
+          }
+        },
+        "resources": {
+          "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "cs"
+          },
+          "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "de"
+          },
+          "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "es"
+          },
+          "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "fr"
+          },
+          "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "it"
+          },
+          "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "ja"
+          },
+          "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "ko"
+          },
+          "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "pl"
+          },
+          "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "pt-BR"
+          },
+          "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "ru"
+          },
+          "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "tr"
+          },
+          "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "zh-Hans"
+          },
+          "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+            "locale": "zh-Hant"
+          }
+        }
+      },
+      "Microsoft.CodeAnalysis.CSharp.Workspaces/4.11.0": {
+        "dependencies": {
+          "Humanizer.Core": "2.14.1",
+          "Microsoft.Bcl.AsyncInterfaces": "9.0.0",
+          "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+          "Microsoft.CodeAnalysis.CSharp": "4.11.0",
+          "Microsoft.CodeAnalysis.Common": "4.11.0",
+          "Microsoft.CodeAnalysis.Workspaces.Common": "4.11.0",
+          "System.Buffers": "4.5.1",
+          "System.Collections.Immutable": "8.0.0",
+          "System.Composition": "8.0.0",
+          "System.IO.Pipelines": "9.0.0",
+          "System.Memory": "4.5.5",
+          "System.Numerics.Vectors": "4.5.0",
+          "System.Reflection.Metadata": "8.0.0",
+          "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+          "System.Text.Encoding.CodePages": "7.0.0",
+          "System.Threading.Channels": "7.0.0",
+          "System.Threading.Tasks.Extensions": "4.5.4"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": {
+            "assemblyVersion": "4.11.0.0",
+            "fileVersion": "4.1100.24.37604"
+          }
+        },
+        "resources": {
+          "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "cs"
+          },
+          "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "de"
+          },
+          "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "es"
+          },
+          "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "fr"
+          },
+          "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "it"
+          },
+          "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "ja"
+          },
+          "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "ko"
+          },
+          "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "pl"
+          },
+          "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "pt-BR"
+          },
+          "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "ru"
+          },
+          "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "tr"
+          },
+          "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "zh-Hans"
+          },
+          "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
+            "locale": "zh-Hant"
+          }
+        }
+      },
+      "Microsoft.CodeAnalysis.Workspaces.Common/4.11.0": {
+        "dependencies": {
+          "Humanizer.Core": "2.14.1",
+          "Microsoft.Bcl.AsyncInterfaces": "9.0.0",
+          "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+          "Microsoft.CodeAnalysis.Common": "4.11.0",
+          "System.Buffers": "4.5.1",
+          "System.Collections.Immutable": "8.0.0",
+          "System.Composition": "8.0.0",
+          "System.IO.Pipelines": "9.0.0",
+          "System.Memory": "4.5.5",
+          "System.Numerics.Vectors": "4.5.0",
+          "System.Reflection.Metadata": "8.0.0",
+          "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+          "System.Text.Encoding.CodePages": "7.0.0",
+          "System.Threading.Channels": "7.0.0",
+          "System.Threading.Tasks.Extensions": "4.5.4"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.CodeAnalysis.Workspaces.dll": {
+            "assemblyVersion": "4.11.0.0",
+            "fileVersion": "4.1100.24.37604"
+          }
+        },
+        "resources": {
+          "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "cs"
+          },
+          "lib/netstandard2.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "de"
+          },
+          "lib/netstandard2.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "es"
+          },
+          "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "fr"
+          },
+          "lib/netstandard2.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "it"
+          },
+          "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "ja"
+          },
+          "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "ko"
+          },
+          "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "pl"
+          },
+          "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "pt-BR"
+          },
+          "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "ru"
+          },
+          "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "tr"
+          },
+          "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "zh-Hans"
+          },
+          "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
+            "locale": "zh-Hant"
           }
         }
       },
@@ -194,11 +597,11 @@
           "Microsoft.IdentityModel.JsonWebTokens": "6.35.0",
           "Microsoft.IdentityModel.Protocols.OpenIdConnect": "6.35.0",
           "Microsoft.Win32.Registry": "4.7.0",
-          "System.Configuration.ConfigurationManager": "6.0.0",
+          "System.Configuration.ConfigurationManager": "7.0.0",
           "System.Diagnostics.DiagnosticSource": "7.0.2",
           "System.Runtime.Caching": "4.7.0",
           "System.Security.Principal.Windows": "4.7.0",
-          "System.Text.Encoding.CodePages": "6.0.0"
+          "System.Text.Encoding.CodePages": "7.0.0"
         },
         "runtime": {
           "lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll": {
@@ -262,11 +665,121 @@
           }
         }
       },
-      "Microsoft.Extensions.ApiDescription.Server/6.0.5": {},
-      "Microsoft.Extensions.DependencyInjection/6.0.0": {
+      "Microsoft.EntityFrameworkCore/6.0.36": {
         "dependencies": {
+          "Microsoft.EntityFrameworkCore.Abstractions": "6.0.36",
+          "Microsoft.EntityFrameworkCore.Analyzers": "6.0.36",
+          "Microsoft.Extensions.Caching.Memory": "6.0.3",
+          "Microsoft.Extensions.DependencyInjection": "6.0.2",
+          "Microsoft.Extensions.Logging": "6.0.1",
+          "System.Collections.Immutable": "8.0.0",
+          "System.Diagnostics.DiagnosticSource": "7.0.2"
+        },
+        "runtime": {
+          "lib/net6.0/Microsoft.EntityFrameworkCore.dll": {
+            "assemblyVersion": "6.0.36.0",
+            "fileVersion": "6.0.3624.51504"
+          }
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Abstractions/6.0.36": {
+        "runtime": {
+          "lib/net6.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
+            "assemblyVersion": "6.0.36.0",
+            "fileVersion": "6.0.3624.51504"
+          }
+        }
+      },
+      "Microsoft.EntityFrameworkCore.Analyzers/6.0.36": {},
+      "Microsoft.Extensions.ApiDescription.Server/6.0.5": {},
+      "Microsoft.Extensions.Caching.Abstractions/6.0.1": {
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll": {
+            "assemblyVersion": "6.0.0.0",
+            "fileVersion": "6.0.3624.51421"
+          }
+        }
+      },
+      "Microsoft.Extensions.Caching.Memory/6.0.3": {
+        "dependencies": {
+          "Microsoft.Extensions.Caching.Abstractions": "6.0.1",
           "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
-          "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+          "Microsoft.Extensions.Logging.Abstractions": "6.0.4",
+          "Microsoft.Extensions.Options": "6.0.1",
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll": {
+            "assemblyVersion": "6.0.0.0",
+            "fileVersion": "6.0.3624.51421"
+          }
+        }
+      },
+      "Microsoft.Extensions.Configuration/9.0.0": {
+        "dependencies": {
+          "Microsoft.Extensions.Configuration.Abstractions": "9.0.0",
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "Microsoft.Extensions.Configuration.Abstractions/9.0.0": {
+        "dependencies": {
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "Microsoft.Extensions.Configuration.FileExtensions/9.0.0": {
+        "dependencies": {
+          "Microsoft.Extensions.Configuration": "9.0.0",
+          "Microsoft.Extensions.Configuration.Abstractions": "9.0.0",
+          "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0",
+          "Microsoft.Extensions.FileProviders.Physical": "9.0.0",
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "Microsoft.Extensions.Configuration.Json/9.0.0": {
+        "dependencies": {
+          "Microsoft.Extensions.Configuration": "9.0.0",
+          "Microsoft.Extensions.Configuration.Abstractions": "9.0.0",
+          "Microsoft.Extensions.Configuration.FileExtensions": "9.0.0",
+          "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0",
+          "System.Text.Json": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "Microsoft.Extensions.DependencyInjection/6.0.2": {
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/Microsoft.Extensions.DependencyInjection.dll": {
+            "assemblyVersion": "6.0.0.0",
+            "fileVersion": "6.0.3624.51421"
+          }
         }
       },
       "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0": {
@@ -280,10 +793,10 @@
       "Microsoft.Extensions.DependencyModel/6.0.0": {
         "dependencies": {
           "System.Buffers": "4.5.1",
-          "System.Memory": "4.5.4",
+          "System.Memory": "4.5.5",
           "System.Runtime.CompilerServices.Unsafe": "6.0.0",
-          "System.Text.Encodings.Web": "6.0.0",
-          "System.Text.Json": "6.0.0"
+          "System.Text.Encodings.Web": "9.0.0",
+          "System.Text.Json": "9.0.0"
         },
         "runtime": {
           "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.dll": {
@@ -292,15 +805,83 @@
           }
         }
       },
-      "Microsoft.Extensions.Options/6.0.0": {
+      "Microsoft.Extensions.FileProviders.Abstractions/9.0.0": {
         "dependencies": {
-          "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
-          "Microsoft.Extensions.Primitives": "6.0.0"
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
         }
       },
-      "Microsoft.Extensions.Primitives/6.0.0": {
+      "Microsoft.Extensions.FileProviders.Physical/9.0.0": {
         "dependencies": {
+          "Microsoft.Extensions.FileProviders.Abstractions": "9.0.0",
+          "Microsoft.Extensions.FileSystemGlobbing": "9.0.0",
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "Microsoft.Extensions.FileSystemGlobbing/9.0.0": {
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "Microsoft.Extensions.Logging/6.0.1": {
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection": "6.0.2",
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+          "Microsoft.Extensions.Logging.Abstractions": "6.0.4",
+          "Microsoft.Extensions.Options": "6.0.1",
+          "System.Diagnostics.DiagnosticSource": "7.0.2"
+        },
+        "runtime": {
+          "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {
+            "assemblyVersion": "6.0.0.0",
+            "fileVersion": "6.0.3624.51421"
+          }
+        }
+      },
+      "Microsoft.Extensions.Logging.Abstractions/6.0.4": {
+        "runtime": {
+          "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll": {
+            "assemblyVersion": "6.0.0.0",
+            "fileVersion": "6.0.1823.26907"
+          }
+        }
+      },
+      "Microsoft.Extensions.Options/6.0.1": {
+        "dependencies": {
+          "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
+          "Microsoft.Extensions.Primitives": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.1/Microsoft.Extensions.Options.dll": {
+            "assemblyVersion": "6.0.0.0",
+            "fileVersion": "6.0.3624.51421"
+          }
+        }
+      },
+      "Microsoft.Extensions.Primitives/9.0.0": {
+        "dependencies": {
+          "System.Memory": "4.5.5",
           "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
         }
       },
       "Microsoft.Identity.Client/4.21.1": {
@@ -323,8 +904,8 @@
         "dependencies": {
           "Microsoft.IdentityModel.Tokens": "6.35.0",
           "System.Text.Encoding": "4.3.0",
-          "System.Text.Encodings.Web": "6.0.0",
-          "System.Text.Json": "6.0.0"
+          "System.Text.Encodings.Web": "9.0.0",
+          "System.Text.Json": "9.0.0"
         },
         "runtime": {
           "lib/net6.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
@@ -391,11 +972,11 @@
       },
       "Microsoft.NETCore.Platforms/1.1.1": {},
       "Microsoft.NETCore.Targets/1.1.3": {},
-      "Microsoft.OpenApi/1.3.1": {
+      "Microsoft.OpenApi/1.6.14": {
         "runtime": {
           "lib/netstandard2.0/Microsoft.OpenApi.dll": {
-            "assemblyVersion": "1.3.1.0",
-            "fileVersion": "1.3.1.0"
+            "assemblyVersion": "1.6.14.0",
+            "fileVersion": "1.6.14.0"
           }
         }
       },
@@ -412,19 +993,19 @@
           "System.Security.Principal.Windows": "4.7.0"
         }
       },
-      "Microsoft.Win32.SystemEvents/6.0.0": {
+      "Microsoft.Win32.SystemEvents/7.0.0": {
         "runtime": {
           "lib/net6.0/Microsoft.Win32.SystemEvents.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         },
         "runtimeTargets": {
           "runtimes/win/lib/net6.0/Microsoft.Win32.SystemEvents.dll": {
             "rid": "win",
             "assetType": "runtime",
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         }
       },
@@ -459,7 +1040,7 @@
           "System.Diagnostics.DiagnosticSource": "7.0.2",
           "System.Diagnostics.StackTrace": "4.3.0",
           "System.Dynamic.Runtime": "4.3.0",
-          "System.Reflection.Emit.Lightweight": "4.3.0",
+          "System.Reflection.Emit.Lightweight": "4.7.0",
           "System.Runtime.Extensions": "4.3.0",
           "System.Runtime.Serialization.Primitives": "4.3.0",
           "System.Threading.Tasks.Parallel": "4.3.0"
@@ -468,6 +1049,36 @@
           "lib/netstandard2.0/MiniProfiler.Shared.dll": {
             "assemblyVersion": "4.0.0.0",
             "fileVersion": "4.3.8.8209"
+          }
+        }
+      },
+      "MoYu.Pure/4.9.5.5": {
+        "dependencies": {
+          "MiniProfiler.AspNetCore.Mvc": "4.3.8",
+          "MoYu.Pure.Extras.DependencyModel.CodeAnalysis": "4.9.5.5",
+          "Swashbuckle.AspNetCore": "6.7.2"
+        },
+        "runtime": {
+          "lib/net6.0/MoYu.Pure.dll": {
+            "assemblyVersion": "4.9.5.5",
+            "fileVersion": "4.9.5.5"
+          }
+        }
+      },
+      "MoYu.Pure.Extras.DependencyModel.CodeAnalysis/4.9.5.5": {
+        "dependencies": {
+          "Ben.Demystifier": "0.4.1",
+          "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "6.0.33",
+          "Microsoft.AspNetCore.Razor.Language": "6.0.33",
+          "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.11.0",
+          "Microsoft.Extensions.DependencyModel": "6.0.0",
+          "System.Text.Json": "9.0.0",
+          "System.Text.RegularExpressions": "4.3.1"
+        },
+        "runtime": {
+          "lib/net6.0/MoYu.Pure.Extras.DependencyModel.CodeAnalysis.dll": {
+            "assemblyVersion": "4.9.5.5",
+            "fileVersion": "4.9.5.5"
           }
         }
       },
@@ -493,7 +1104,7 @@
           "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": "4.1.0",
           "System.IO.Compression.ZipFile": "4.0.1",
           "System.IO.FileSystem": "4.3.0",
           "System.IO.FileSystem.Primitives": "4.3.0",
@@ -518,7 +1129,7 @@
           "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.Encoding.Extensions": "4.0.11",
           "System.Text.RegularExpressions": "4.3.1",
           "System.Threading": "4.3.0",
           "System.Threading.Tasks": "4.3.0",
@@ -573,7 +1184,7 @@
       },
       "Oracle.ManagedDataAccess.Core/3.21.100": {
         "dependencies": {
-          "System.Diagnostics.PerformanceCounter": "6.0.1",
+          "System.Diagnostics.PerformanceCounter": "7.0.0",
           "System.DirectoryServices": "6.0.1",
           "System.DirectoryServices.Protocols": "6.0.1"
         },
@@ -586,7 +1197,7 @@
       },
       "Oscar.Data.SqlClient/4.0.4": {
         "dependencies": {
-          "System.Text.Encoding.CodePages": "6.0.0"
+          "System.Text.Encoding.CodePages": "7.0.0"
         },
         "runtime": {
           "lib/netstandard2.0/Oscar.Data.SqlClient.dll": {
@@ -604,7 +1215,7 @@
           "Microsoft.NETCore.Targets": "1.1.3"
         }
       },
-      "runtime.native.System.IO.Compression/4.3.0": {
+      "runtime.native.System.IO.Compression/4.1.0": {
         "dependencies": {
           "Microsoft.NETCore.Platforms": "1.1.1",
           "Microsoft.NETCore.Targets": "1.1.3"
@@ -655,11 +1266,42 @@
           }
         }
       },
-      "SixLabors.ImageSharp/3.0.0": {
+      "SharpCompress/0.38.0": {
+        "dependencies": {
+          "ZstdSharp.Port": "0.8.1"
+        },
+        "runtime": {
+          "lib/net6.0/SharpCompress.dll": {
+            "assemblyVersion": "0.38.0.0",
+            "fileVersion": "0.38.0.0"
+          }
+        }
+      },
+      "SixLabors.Fonts/2.0.4": {
+        "runtime": {
+          "lib/net6.0/SixLabors.Fonts.dll": {
+            "assemblyVersion": "2.0.0.0",
+            "fileVersion": "2.0.4.0"
+          }
+        }
+      },
+      "SixLabors.ImageSharp/3.1.5": {
         "runtime": {
           "lib/net6.0/SixLabors.ImageSharp.dll": {
             "assemblyVersion": "3.0.0.0",
-            "fileVersion": "3.0.0.0"
+            "fileVersion": "3.1.5.0"
+          }
+        }
+      },
+      "SixLabors.ImageSharp.Drawing/2.1.4": {
+        "dependencies": {
+          "SixLabors.Fonts": "2.0.4",
+          "SixLabors.ImageSharp": "3.1.5"
+        },
+        "runtime": {
+          "lib/net6.0/SixLabors.ImageSharp.Drawing.dll": {
+            "assemblyVersion": "2.0.0.0",
+            "fileVersion": "2.1.4.0"
           }
         }
       },
@@ -744,7 +1386,7 @@
       },
       "SQLitePCLRaw.core/2.1.6": {
         "dependencies": {
-          "System.Memory": "4.5.4"
+          "System.Memory": "4.5.5"
         },
         "runtime": {
           "lib/netstandard2.0/SQLitePCLRaw.core.dll": {
@@ -880,7 +1522,7 @@
           "SqlSugarCore.Dm": "1.3.0",
           "SqlSugarCore.Kdbndp": "9.3.6.411",
           "System.Data.Common": "4.3.0",
-          "System.Reflection.Emit.Lightweight": "4.3.0"
+          "System.Reflection.Emit.Lightweight": "4.7.0"
         },
         "runtime": {
           "lib/netstandard2.1/SqlSugar.dll": {
@@ -891,7 +1533,7 @@
       },
       "SqlSugarCore.Dm/1.3.0": {
         "dependencies": {
-          "System.Text.Encoding.CodePages": "6.0.0"
+          "System.Text.Encoding.CodePages": "7.0.0"
         },
         "runtime": {
           "lib/netstandard2.0/DmProvider.dll": {
@@ -908,21 +1550,21 @@
           }
         }
       },
-      "Swashbuckle.AspNetCore/6.5.0": {
+      "Swashbuckle.AspNetCore/6.7.2": {
         "dependencies": {
           "Microsoft.Extensions.ApiDescription.Server": "6.0.5",
-          "Swashbuckle.AspNetCore.Swagger": "6.5.0",
-          "Swashbuckle.AspNetCore.SwaggerGen": "6.5.0",
-          "Swashbuckle.AspNetCore.SwaggerUI": "6.5.0"
+          "Swashbuckle.AspNetCore.Swagger": "6.7.2",
+          "Swashbuckle.AspNetCore.SwaggerGen": "6.7.2",
+          "Swashbuckle.AspNetCore.SwaggerUI": "6.7.2"
         }
       },
       "Swashbuckle.AspNetCore.Filters/7.0.5": {
         "dependencies": {
-          "Microsoft.Extensions.DependencyInjection": "6.0.0",
-          "Microsoft.OpenApi": "1.3.1",
+          "Microsoft.Extensions.DependencyInjection": "6.0.2",
+          "Microsoft.OpenApi": "1.6.14",
           "Scrutor": "3.3.0",
           "Swashbuckle.AspNetCore.Filters.Abstractions": "7.0.5",
-          "Swashbuckle.AspNetCore.SwaggerGen": "6.5.0"
+          "Swashbuckle.AspNetCore.SwaggerGen": "6.7.2"
         },
         "runtime": {
           "lib/net5.0/Swashbuckle.AspNetCore.Filters.dll": {
@@ -941,8 +1583,8 @@
       },
       "Swashbuckle.AspNetCore.Newtonsoft/6.5.0": {
         "dependencies": {
-          "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "6.0.0-rc.1.21452.15",
-          "Swashbuckle.AspNetCore.SwaggerGen": "6.5.0"
+          "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "6.0.33",
+          "Swashbuckle.AspNetCore.SwaggerGen": "6.7.2"
         },
         "runtime": {
           "lib/net6.0/Swashbuckle.AspNetCore.Newtonsoft.dll": {
@@ -951,33 +1593,33 @@
           }
         }
       },
-      "Swashbuckle.AspNetCore.Swagger/6.5.0": {
+      "Swashbuckle.AspNetCore.Swagger/6.7.2": {
         "dependencies": {
-          "Microsoft.OpenApi": "1.3.1"
+          "Microsoft.OpenApi": "1.6.14"
         },
         "runtime": {
           "lib/net6.0/Swashbuckle.AspNetCore.Swagger.dll": {
-            "assemblyVersion": "6.5.0.0",
-            "fileVersion": "6.5.0.0"
+            "assemblyVersion": "6.7.2.0",
+            "fileVersion": "6.7.2.666"
           }
         }
       },
-      "Swashbuckle.AspNetCore.SwaggerGen/6.5.0": {
+      "Swashbuckle.AspNetCore.SwaggerGen/6.7.2": {
         "dependencies": {
-          "Swashbuckle.AspNetCore.Swagger": "6.5.0"
+          "Swashbuckle.AspNetCore.Swagger": "6.7.2"
         },
         "runtime": {
           "lib/net6.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
-            "assemblyVersion": "6.5.0.0",
-            "fileVersion": "6.5.0.0"
+            "assemblyVersion": "6.7.2.0",
+            "fileVersion": "6.7.2.666"
           }
         }
       },
-      "Swashbuckle.AspNetCore.SwaggerUI/6.5.0": {
+      "Swashbuckle.AspNetCore.SwaggerUI/6.7.2": {
         "runtime": {
           "lib/net6.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
-            "assemblyVersion": "6.5.0.0",
-            "fileVersion": "6.5.0.0"
+            "assemblyVersion": "6.7.2.0",
+            "fileVersion": "6.7.2.666"
           }
         }
       },
@@ -987,6 +1629,14 @@
         }
       },
       "System.Buffers/4.5.1": {},
+      "System.CodeDom/9.0.0": {
+        "runtime": {
+          "lib/netstandard2.0/System.CodeDom.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
       "System.Collections/4.3.0": {
         "dependencies": {
           "Microsoft.NETCore.Platforms": "1.1.1",
@@ -1008,16 +1658,15 @@
           "System.Threading.Tasks": "4.3.0"
         }
       },
-      "System.Collections.Immutable/1.3.0": {
+      "System.Collections.Immutable/8.0.0": {
         "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.Globalization": "4.3.0",
-          "System.Linq": "4.3.0",
-          "System.Resources.ResourceManager": "4.3.0",
-          "System.Runtime": "4.3.1",
-          "System.Runtime.Extensions": "4.3.0",
-          "System.Threading": "4.3.0"
+          "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/System.Collections.Immutable.dll": {
+            "assemblyVersion": "8.0.0.0",
+            "fileVersion": "8.0.23.53103"
+          }
         }
       },
       "System.ComponentModel/4.3.0": {
@@ -1033,15 +1682,75 @@
           "System.Runtime": "4.3.1"
         }
       },
-      "System.Configuration.ConfigurationManager/6.0.0": {
+      "System.Composition/8.0.0": {
         "dependencies": {
-          "System.Security.Cryptography.ProtectedData": "6.0.0",
-          "System.Security.Permissions": "6.0.0"
+          "System.Composition.AttributedModel": "8.0.0",
+          "System.Composition.Convention": "8.0.0",
+          "System.Composition.Hosting": "8.0.0",
+          "System.Composition.Runtime": "8.0.0",
+          "System.Composition.TypedParts": "8.0.0"
+        }
+      },
+      "System.Composition.AttributedModel/8.0.0": {
+        "runtime": {
+          "lib/net6.0/System.Composition.AttributedModel.dll": {
+            "assemblyVersion": "8.0.0.0",
+            "fileVersion": "8.0.23.53103"
+          }
+        }
+      },
+      "System.Composition.Convention/8.0.0": {
+        "dependencies": {
+          "System.Composition.AttributedModel": "8.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/System.Composition.Convention.dll": {
+            "assemblyVersion": "8.0.0.0",
+            "fileVersion": "8.0.23.53103"
+          }
+        }
+      },
+      "System.Composition.Hosting/8.0.0": {
+        "dependencies": {
+          "System.Composition.Runtime": "8.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/System.Composition.Hosting.dll": {
+            "assemblyVersion": "8.0.0.0",
+            "fileVersion": "8.0.23.53103"
+          }
+        }
+      },
+      "System.Composition.Runtime/8.0.0": {
+        "runtime": {
+          "lib/net6.0/System.Composition.Runtime.dll": {
+            "assemblyVersion": "8.0.0.0",
+            "fileVersion": "8.0.23.53103"
+          }
+        }
+      },
+      "System.Composition.TypedParts/8.0.0": {
+        "dependencies": {
+          "System.Composition.AttributedModel": "8.0.0",
+          "System.Composition.Hosting": "8.0.0",
+          "System.Composition.Runtime": "8.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/System.Composition.TypedParts.dll": {
+            "assemblyVersion": "8.0.0.0",
+            "fileVersion": "8.0.23.53103"
+          }
+        }
+      },
+      "System.Configuration.ConfigurationManager/7.0.0": {
+        "dependencies": {
+          "System.Security.Cryptography.ProtectedData": "7.0.0",
+          "System.Security.Permissions": "7.0.0"
         },
         "runtime": {
           "lib/net6.0/System.Configuration.ConfigurationManager.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         }
       },
@@ -1085,22 +1794,22 @@
         }
       },
       "System.Diagnostics.EventLog/6.0.0": {},
-      "System.Diagnostics.PerformanceCounter/6.0.1": {
+      "System.Diagnostics.PerformanceCounter/7.0.0": {
         "dependencies": {
-          "System.Configuration.ConfigurationManager": "6.0.0"
+          "System.Configuration.ConfigurationManager": "7.0.0"
         },
         "runtime": {
           "lib/net6.0/System.Diagnostics.PerformanceCounter.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.422.16404"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         },
         "runtimeTargets": {
           "runtimes/win/lib/net6.0/System.Diagnostics.PerformanceCounter.dll": {
             "rid": "win",
             "assetType": "runtime",
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.422.16404"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         }
       },
@@ -1108,7 +1817,7 @@
         "dependencies": {
           "System.IO.FileSystem": "4.3.0",
           "System.Reflection": "4.3.0",
-          "System.Reflection.Metadata": "1.4.1",
+          "System.Reflection.Metadata": "8.0.0",
           "System.Runtime": "4.3.1"
         }
       },
@@ -1129,7 +1838,7 @@
       "System.DirectoryServices/6.0.1": {
         "dependencies": {
           "System.Security.AccessControl": "6.0.0",
-          "System.Security.Permissions": "6.0.0"
+          "System.Security.Permissions": "7.0.0"
         },
         "runtime": {
           "lib/net6.0/System.DirectoryServices.dll": {
@@ -1174,28 +1883,22 @@
           }
         }
       },
-      "System.Drawing.Common/6.0.0": {
+      "System.Drawing.Common/7.0.0": {
         "dependencies": {
-          "Microsoft.Win32.SystemEvents": "6.0.0"
+          "Microsoft.Win32.SystemEvents": "7.0.0"
         },
         "runtime": {
           "lib/net6.0/System.Drawing.Common.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         },
         "runtimeTargets": {
-          "runtimes/unix/lib/net6.0/System.Drawing.Common.dll": {
-            "rid": "unix",
-            "assetType": "runtime",
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
-          },
           "runtimes/win/lib/net6.0/System.Drawing.Common.dll": {
             "rid": "win",
             "assetType": "runtime",
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         }
       },
@@ -1264,10 +1967,9 @@
           "System.Threading.Tasks": "4.3.0"
         }
       },
-      "System.IO.Compression/4.3.0": {
+      "System.IO.Compression/4.1.0": {
         "dependencies": {
           "Microsoft.NETCore.Platforms": "1.1.1",
-          "System.Buffers": "4.5.1",
           "System.Collections": "4.3.0",
           "System.Diagnostics.Debug": "4.3.0",
           "System.IO": "4.3.0",
@@ -1280,14 +1982,14 @@
           "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"
+          "runtime.native.System.IO.Compression": "4.1.0"
         }
       },
       "System.IO.Compression.ZipFile/4.0.1": {
         "dependencies": {
           "System.Buffers": "4.5.1",
           "System.IO": "4.3.0",
-          "System.IO.Compression": "4.3.0",
+          "System.IO.Compression": "4.1.0",
           "System.IO.FileSystem": "4.3.0",
           "System.IO.FileSystem.Primitives": "4.3.0",
           "System.Resources.ResourceManager": "4.3.0",
@@ -1319,7 +2021,7 @@
           "System.Diagnostics.Debug": "4.3.0",
           "System.Globalization": "4.3.0",
           "System.IO": "4.3.0",
-          "System.IO.Compression": "4.3.0",
+          "System.IO.Compression": "4.1.0",
           "System.IO.FileSystem": "4.3.0",
           "System.IO.FileSystem.Primitives": "4.3.0",
           "System.Resources.ResourceManager": "4.3.0",
@@ -1332,6 +2034,19 @@
           "lib/netstandard1.3/System.IO.Packaging.dll": {
             "assemblyVersion": "4.0.0.0",
             "fileVersion": "1.0.24212.1"
+          }
+        }
+      },
+      "System.IO.Pipelines/9.0.0": {
+        "dependencies": {
+          "System.Buffers": "4.5.1",
+          "System.Memory": "4.5.5",
+          "System.Threading.Tasks.Extensions": "4.5.4"
+        },
+        "runtime": {
+          "lib/netstandard2.0/System.IO.Pipelines.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
           }
         }
       },
@@ -1363,7 +2078,7 @@
           "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.Emit.Lightweight": "4.7.0",
           "System.Reflection.Extensions": "4.3.0",
           "System.Reflection.Primitives": "4.3.0",
           "System.Reflection.TypeExtensions": "4.3.0",
@@ -1373,7 +2088,18 @@
           "System.Threading": "4.3.0"
         }
       },
-      "System.Memory/4.5.4": {},
+      "System.Management/9.0.0": {
+        "dependencies": {
+          "System.CodeDom": "9.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/System.Management.dll": {
+            "assemblyVersion": "4.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
+        }
+      },
+      "System.Memory/4.5.5": {},
       "System.Net.Http/4.3.4": {
         "dependencies": {
           "Microsoft.NETCore.Platforms": "1.1.1",
@@ -1422,6 +2148,7 @@
           "System.Threading.Tasks": "4.3.0"
         }
       },
+      "System.Numerics.Vectors/4.5.0": {},
       "System.ObjectModel/4.3.0": {
         "dependencies": {
           "System.Collections": "4.3.0",
@@ -1456,14 +2183,7 @@
           "System.Runtime": "4.3.1"
         }
       },
-      "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.1"
-        }
-      },
+      "System.Reflection.Emit.Lightweight/4.7.0": {},
       "System.Reflection.Extensions/4.3.0": {
         "dependencies": {
           "Microsoft.NETCore.Platforms": "1.1.1",
@@ -1472,24 +2192,15 @@
           "System.Runtime": "4.3.1"
         }
       },
-      "System.Reflection.Metadata/1.4.1": {
+      "System.Reflection.Metadata/8.0.0": {
         "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Collections.Immutable": "1.3.0",
-          "System.Diagnostics.Debug": "4.3.0",
-          "System.IO": "4.3.0",
-          "System.IO.Compression": "4.3.0",
-          "System.Linq": "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.1",
-          "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.Threading": "4.3.0"
+          "System.Collections.Immutable": "8.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/System.Reflection.Metadata.dll": {
+            "assemblyVersion": "8.0.0.0",
+            "fileVersion": "8.0.23.53103"
+          }
         }
       },
       "System.Reflection.Primitives/4.3.0": {
@@ -1522,7 +2233,7 @@
       },
       "System.Runtime.Caching/4.7.0": {
         "dependencies": {
-          "System.Configuration.ConfigurationManager": "6.0.0"
+          "System.Configuration.ConfigurationManager": "7.0.0"
         },
         "runtime": {
           "lib/netstandard2.0/System.Runtime.Caching.dll": {
@@ -1689,19 +2400,19 @@
           "System.Threading.Tasks": "4.3.0"
         }
       },
-      "System.Security.Cryptography.ProtectedData/6.0.0": {
+      "System.Security.Cryptography.ProtectedData/7.0.0": {
         "runtime": {
           "lib/net6.0/System.Security.Cryptography.ProtectedData.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         },
         "runtimeTargets": {
           "runtimes/win/lib/net6.0/System.Security.Cryptography.ProtectedData.dll": {
             "rid": "win",
             "assetType": "runtime",
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         }
       },
@@ -1734,15 +2445,14 @@
           "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
         }
       },
-      "System.Security.Permissions/6.0.0": {
+      "System.Security.Permissions/7.0.0": {
         "dependencies": {
-          "System.Security.AccessControl": "6.0.0",
-          "System.Windows.Extensions": "6.0.0"
+          "System.Windows.Extensions": "7.0.0"
         },
         "runtime": {
           "lib/net6.0/System.Security.Permissions.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         }
       },
@@ -1754,12 +2464,26 @@
           "System.Runtime": "4.3.1"
         }
       },
-      "System.Text.Encoding.CodePages/6.0.0": {
+      "System.Text.Encoding.CodePages/7.0.0": {
         "dependencies": {
           "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+        },
+        "runtime": {
+          "lib/net6.0/System.Text.Encoding.CodePages.dll": {
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
+          }
+        },
+        "runtimeTargets": {
+          "runtimes/win/lib/net6.0/System.Text.Encoding.CodePages.dll": {
+            "rid": "win",
+            "assetType": "runtime",
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
+          }
         }
       },
-      "System.Text.Encoding.Extensions/4.3.0": {
+      "System.Text.Encoding.Extensions/4.0.11": {
         "dependencies": {
           "Microsoft.NETCore.Platforms": "1.1.1",
           "Microsoft.NETCore.Targets": "1.1.3",
@@ -1767,15 +2491,34 @@
           "System.Text.Encoding": "4.3.0"
         }
       },
-      "System.Text.Encodings.Web/6.0.0": {
+      "System.Text.Encodings.Web/9.0.0": {
         "dependencies": {
+          "System.Buffers": "4.5.1",
+          "System.Memory": "4.5.5",
           "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+        },
+        "runtime": {
+          "lib/netstandard2.0/System.Text.Encodings.Web.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
         }
       },
-      "System.Text.Json/6.0.0": {
+      "System.Text.Json/9.0.0": {
         "dependencies": {
+          "Microsoft.Bcl.AsyncInterfaces": "9.0.0",
+          "System.Buffers": "4.5.1",
+          "System.IO.Pipelines": "9.0.0",
+          "System.Memory": "4.5.5",
           "System.Runtime.CompilerServices.Unsafe": "6.0.0",
-          "System.Text.Encodings.Web": "6.0.0"
+          "System.Text.Encodings.Web": "9.0.0",
+          "System.Threading.Tasks.Extensions": "4.5.4"
+        },
+        "runtime": {
+          "lib/netstandard2.0/System.Text.Json.dll": {
+            "assemblyVersion": "9.0.0.0",
+            "fileVersion": "9.0.24.52809"
+          }
         }
       },
       "System.Text.RegularExpressions/4.3.1": {
@@ -1789,6 +2532,14 @@
           "System.Threading.Tasks": "4.3.0"
         }
       },
+      "System.Threading.Channels/7.0.0": {
+        "runtime": {
+          "lib/net6.0/System.Threading.Channels.dll": {
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
+          }
+        }
+      },
       "System.Threading.Tasks/4.3.0": {
         "dependencies": {
           "Microsoft.NETCore.Platforms": "1.1.1",
@@ -1796,13 +2547,7 @@
           "System.Runtime": "4.3.1"
         }
       },
-      "System.Threading.Tasks.Extensions/4.0.0": {
-        "dependencies": {
-          "System.Collections": "4.3.0",
-          "System.Runtime": "4.3.1",
-          "System.Threading.Tasks": "4.3.0"
-        }
-      },
+      "System.Threading.Tasks.Extensions/4.5.4": {},
       "System.Threading.Tasks.Parallel/4.3.0": {
         "dependencies": {
           "System.Collections.Concurrent": "4.3.0",
@@ -1822,22 +2567,22 @@
           "System.Runtime": "4.3.1"
         }
       },
-      "System.Windows.Extensions/6.0.0": {
+      "System.Windows.Extensions/7.0.0": {
         "dependencies": {
-          "System.Drawing.Common": "6.0.0"
+          "System.Drawing.Common": "7.0.0"
         },
         "runtime": {
           "lib/net6.0/System.Windows.Extensions.dll": {
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         },
         "runtimeTargets": {
           "runtimes/win/lib/net6.0/System.Windows.Extensions.dll": {
             "rid": "win",
             "assetType": "runtime",
-            "assemblyVersion": "6.0.0.0",
-            "fileVersion": "6.0.21.52210"
+            "assemblyVersion": "7.0.0.0",
+            "fileVersion": "7.0.22.51805"
           }
         }
       },
@@ -1854,10 +2599,10 @@
           "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.Encoding.Extensions": "4.0.11",
           "System.Text.RegularExpressions": "4.3.1",
           "System.Threading.Tasks": "4.3.0",
-          "System.Threading.Tasks.Extensions": "4.0.0"
+          "System.Threading.Tasks.Extensions": "4.5.4"
         }
       },
       "System.Xml.XDocument/4.0.11": {
@@ -1901,6 +2646,14 @@
           "System.Xml.XDocument": "4.0.11",
           "System.Xml.XPath": "4.0.1"
         }
+      },
+      "ZstdSharp.Port/0.8.1": {
+        "runtime": {
+          "lib/net6.0/ZstdSharp.dll": {
+            "assemblyVersion": "0.8.1.0",
+            "fileVersion": "0.8.1.0"
+          }
+        }
       }
     }
   },
@@ -1909,6 +2662,20 @@
       "type": "project",
       "serviceable": false,
       "sha512": ""
+    },
+    "AngleSharp/1.1.2": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-aRFpAqixbuj1Vmqy2hsWPF0PJygo1SfjvmpBvVWZv6i+/u+C/L4wDdwFIzyCGUbjqr61NsZdPNPqDE8wlmG2qA==",
+      "path": "anglesharp/1.1.2",
+      "hashPath": "anglesharp.1.1.2.nupkg.sha512"
+    },
+    "AngleSharp.Css/1.0.0-beta.139": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-6WE6IsXtmTUe3h5dL7d0AM/WqlR3toulUcUnt9hQOZaJykjUxRE5WLAEwIjVzh1/n2vqKxjG+BCOx0ywmY0Xhg==",
+      "path": "anglesharp.css/1.0.0-beta.139",
+      "hashPath": "anglesharp.css.1.0.0-beta.139.nupkg.sha512"
     },
     "Autofac/8.0.0": {
       "type": "package",
@@ -1938,6 +2705,13 @@
       "path": "automapper/13.0.1",
       "hashPath": "automapper.13.0.1.nupkg.sha512"
     },
+    "Ben.Demystifier/0.4.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-axFeEMfmEORy3ipAzOXG/lE+KcNptRbei3F0C4kQCdeiQtW+qJW90K5iIovITGrdLt8AjhNCwk5qLSX9/rFpoA==",
+      "path": "ben.demystifier/0.4.1",
+      "hashPath": "ben.demystifier.0.4.1.nupkg.sha512"
+    },
     "Castle.Core/5.1.1": {
       "type": "package",
       "serviceable": true,
@@ -1945,12 +2719,33 @@
       "path": "castle.core/5.1.1",
       "hashPath": "castle.core.5.1.1.nupkg.sha512"
     },
+    "DnsClient/1.8.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-RRwtaCXkXWsx0mmsReGDqCbRLtItfUbkRJlet1FpdciVhyMGKcPd57T1+8Jki9ojHlq9fntVhXQroOOgRak8DQ==",
+      "path": "dnsclient/1.8.0",
+      "hashPath": "dnsclient.1.8.0.nupkg.sha512"
+    },
     "DynamicExpresso.Core/2.3.3": {
       "type": "package",
       "serviceable": true,
       "sha512": "sha512-p6GEP3BphaT9xa59VjpQeozkloXjcDmoL6aPXOInl5S5chWtB82H+GiirV3H1bP39ZeXX2e1UN0w7/pD1wCUlg==",
       "path": "dynamicexpresso.core/2.3.3",
       "hashPath": "dynamicexpresso.core.2.3.3.nupkg.sha512"
+    },
+    "Furion.Extras.ObjectMapper.Mapster/4.9.5": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-ZGgNKDaO/1XWmQz07TDmi7BCA1fEq3vmwVNZ+dr5hhozg+85ZlLR2a2CEtwDU4KNVlPBDvCfPbzb/F6m49oH+Q==",
+      "path": "furion.extras.objectmapper.mapster/4.9.5",
+      "hashPath": "furion.extras.objectmapper.mapster.4.9.5.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"
     },
     "Magicodes.IE.Core/2.7.5.1": {
       "type": "package",
@@ -1973,6 +2768,41 @@
       "path": "magicodes.ie.excel/2.7.5.1",
       "hashPath": "magicodes.ie.excel.2.7.5.1.nupkg.sha512"
     },
+    "Mapster/7.4.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-RYGoDqvS4WTKIq0HDyPBBVIj6N0mluOCXQ1Vk95JKseMHEsbCXSEGKSlP95oL+s42IXAXbqvHj7p0YaRBUcfqg==",
+      "path": "mapster/7.4.0",
+      "hashPath": "mapster.7.4.0.nupkg.sha512"
+    },
+    "Mapster.Core/1.2.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-11lokmfliBEMMmjeqxFGNpqGXq6tN96zFqpBmfYeahr4Ybk63oDmeJmOflsATjobYkX248g5Y62oQ2NNnZaeww==",
+      "path": "mapster.core/1.2.1",
+      "hashPath": "mapster.core.1.2.1.nupkg.sha512"
+    },
+    "Mapster.DependencyInjection/1.0.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-LfjnRIwx6WAo3ssq8PFeaHFaUz00BfSG9BhWgXsiDa3H5lDhG0lpMGDF6w2ZnooS4eHYmAv4f77VxmzpvgorNg==",
+      "path": "mapster.dependencyinjection/1.0.1",
+      "hashPath": "mapster.dependencyinjection.1.0.1.nupkg.sha512"
+    },
+    "Masuit.Tools.Abstractions/2024.6.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-lkMX+tSFKPqSZ+ksX9SHqG3RiKkiFgITVVCYOpFmD2306bRdnHEW9Dzj6UnrwBONph/qgiNAfQV3xdyKvoU/VA==",
+      "path": "masuit.tools.abstractions/2024.6.0",
+      "hashPath": "masuit.tools.abstractions.2024.6.0.nupkg.sha512"
+    },
+    "Masuit.Tools.Core/2024.6.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-/H//vrIgJMPKSwXdhZA4ly1jW3ejbXgBrQjhIOAnQ0VCiq/2HVa8k8owTCYvdX9Heao/lvIsM9zU7ubTn6SSzQ==",
+      "path": "masuit.tools.core/2024.6.0",
+      "hashPath": "masuit.tools.core.2024.6.0.nupkg.sha512"
+    },
     "Microsoft.AspNetCore.Authentication.JwtBearer/6.0.29": {
       "type": "package",
       "serviceable": true,
@@ -1980,19 +2810,68 @@
       "path": "microsoft.aspnetcore.authentication.jwtbearer/6.0.29",
       "hashPath": "microsoft.aspnetcore.authentication.jwtbearer.6.0.29.nupkg.sha512"
     },
-    "Microsoft.AspNetCore.JsonPatch/6.0.0-rc.1.21452.15": {
+    "Microsoft.AspNetCore.JsonPatch/6.0.33": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-+27ce/d0w7jyEmCCMrzwFRg6PHZxQ37Fmnf+es1qQudbip2rryxPdM8TRoXT6wNtdlzqHnIyXTtLjSs0uIDhxA==",
-      "path": "microsoft.aspnetcore.jsonpatch/6.0.0-rc.1.21452.15",
-      "hashPath": "microsoft.aspnetcore.jsonpatch.6.0.0-rc.1.21452.15.nupkg.sha512"
+      "sha512": "sha512-13JOBUHo+ERlYrpO6TnTF8VRlaBynYS0NPSq5lgPVCxSMohj+ktR2veQiswkMqH7FvoJFSthA+E2Xo3vHSOioQ==",
+      "path": "microsoft.aspnetcore.jsonpatch/6.0.33",
+      "hashPath": "microsoft.aspnetcore.jsonpatch.6.0.33.nupkg.sha512"
     },
-    "Microsoft.AspNetCore.Mvc.NewtonsoftJson/6.0.0-rc.1.21452.15": {
+    "Microsoft.AspNetCore.Mvc.NewtonsoftJson/6.0.33": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-/dspuIknGgOdBygH3bmjsIH5neuuJ7DHILXrKVPAoCykPARAIUBckZlIW6RrYqmbGTZYT/YFCzr/xDR5f0YiAA==",
-      "path": "microsoft.aspnetcore.mvc.newtonsoftjson/6.0.0-rc.1.21452.15",
-      "hashPath": "microsoft.aspnetcore.mvc.newtonsoftjson.6.0.0-rc.1.21452.15.nupkg.sha512"
+      "sha512": "sha512-G7wQQW0Blc/1yhDgrJxyqF+813UjtJ1uSbIKggephkr5SK2aU1u/VPQsVzqfuICuxDJ4RC5BA7zYJsjGkrcMdg==",
+      "path": "microsoft.aspnetcore.mvc.newtonsoftjson/6.0.33",
+      "hashPath": "microsoft.aspnetcore.mvc.newtonsoftjson.6.0.33.nupkg.sha512"
+    },
+    "Microsoft.AspNetCore.Razor.Language/6.0.33": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-zkYc2XBIzhik/MC5uJiyf/0fT721Sk+QZWAYU3a5up1xeKNxh/rYMQTmPOPWr8KZtcsAuicVYQrXrsbaqTkrTA==",
+      "path": "microsoft.aspnetcore.razor.language/6.0.33",
+      "hashPath": "microsoft.aspnetcore.razor.language.6.0.33.nupkg.sha512"
+    },
+    "Microsoft.Bcl.AsyncInterfaces/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==",
+      "path": "microsoft.bcl.asyncinterfaces/9.0.0",
+      "hashPath": "microsoft.bcl.asyncinterfaces.9.0.0.nupkg.sha512"
+    },
+    "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+      "path": "microsoft.codeanalysis.analyzers/3.3.4",
+      "hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
+    },
+    "Microsoft.CodeAnalysis.Common/4.11.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-djf8ujmqYImFgB04UGtcsEhHrzVqzHowS+EEl/Yunc5LdrYrZhGBWUTXoCF0NzYXJxtfuD+UVQarWpvrNc94Qg==",
+      "path": "microsoft.codeanalysis.common/4.11.0",
+      "hashPath": "microsoft.codeanalysis.common.4.11.0.nupkg.sha512"
+    },
+    "Microsoft.CodeAnalysis.CSharp/4.11.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-6XYi2EusI8JT4y2l/F3VVVS+ISoIX9nqHsZRaG6W5aFeJ5BEuBosHfT/ABb73FN0RZ1Z3cj2j7cL28SToJPXOw==",
+      "path": "microsoft.codeanalysis.csharp/4.11.0",
+      "hashPath": "microsoft.codeanalysis.csharp.4.11.0.nupkg.sha512"
+    },
+    "Microsoft.CodeAnalysis.CSharp.Workspaces/4.11.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-/oRJPIMvzOfiunIegSF6FEa4VvBAUSXlbLDKxyzXuOZN9nLHg3fHuX6Mr9JZLNIupbe2xqQZEmfsPxgB01vCmg==",
+      "path": "microsoft.codeanalysis.csharp.workspaces/4.11.0",
+      "hashPath": "microsoft.codeanalysis.csharp.workspaces.4.11.0.nupkg.sha512"
+    },
+    "Microsoft.CodeAnalysis.Workspaces.Common/4.11.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-UtwEt42V7/LnvAcschSlmUXRLEj0poX1H7QeFbY5bezcS+tJBCssAq8C7GfisgIA0qZPo2xzOrwKGBbg51CetA==",
+      "path": "microsoft.codeanalysis.workspaces.common/4.11.0",
+      "hashPath": "microsoft.codeanalysis.workspaces.common.4.11.0.nupkg.sha512"
     },
     "Microsoft.CSharp/4.7.0": {
       "type": "package",
@@ -2029,6 +2908,27 @@
       "path": "microsoft.data.sqlite.core/8.0.1",
       "hashPath": "microsoft.data.sqlite.core.8.0.1.nupkg.sha512"
     },
+    "Microsoft.EntityFrameworkCore/6.0.36": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-0i1BBvJBrqdmIdTqCmL+/J74HucYqc5eck3J5trKe6AN2fvdE1lICto6HBwNhbtPniZO7bhW36FnIjTK0FamXg==",
+      "path": "microsoft.entityframeworkcore/6.0.36",
+      "hashPath": "microsoft.entityframeworkcore.6.0.36.nupkg.sha512"
+    },
+    "Microsoft.EntityFrameworkCore.Abstractions/6.0.36": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-nrR4lfe9izQK1eerKW/ECHuJV8xXtuvoj/APrwwOjX4+Ne2SMXBpetctPcYNVc3KyiKuUHJSLywWtsqoXE5ElA==",
+      "path": "microsoft.entityframeworkcore.abstractions/6.0.36",
+      "hashPath": "microsoft.entityframeworkcore.abstractions.6.0.36.nupkg.sha512"
+    },
+    "Microsoft.EntityFrameworkCore.Analyzers/6.0.36": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-Se0wloBaAJcLwgSW4hvGdAWjKnuIwgQ2PKTNkvG80PW/WFgedwKomY9wuO5BPewIHlX6huGyP//StQQRQOWr+Q==",
+      "path": "microsoft.entityframeworkcore.analyzers/6.0.36",
+      "hashPath": "microsoft.entityframeworkcore.analyzers.6.0.36.nupkg.sha512"
+    },
     "Microsoft.Extensions.ApiDescription.Server/6.0.5": {
       "type": "package",
       "serviceable": true,
@@ -2036,12 +2936,54 @@
       "path": "microsoft.extensions.apidescription.server/6.0.5",
       "hashPath": "microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512"
     },
-    "Microsoft.Extensions.DependencyInjection/6.0.0": {
+    "Microsoft.Extensions.Caching.Abstractions/6.0.1": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-k6PWQMuoBDGGHOQTtyois2u4AwyVcIwL2LaSLlTZQm2CYcJ1pxbt6jfAnpWmzENA/wfrYRI/X9DTLoUkE4AsLw==",
-      "path": "microsoft.extensions.dependencyinjection/6.0.0",
-      "hashPath": "microsoft.extensions.dependencyinjection.6.0.0.nupkg.sha512"
+      "sha512": "sha512-zEtKmOJ3sZ9YxRgvgLtoQsqO069Kqp0aC6Ai+DkyE5uahtu1ynvuoDVFQgyyhVcJWnxCzZHax/3AodvAx2mhjA==",
+      "path": "microsoft.extensions.caching.abstractions/6.0.1",
+      "hashPath": "microsoft.extensions.caching.abstractions.6.0.1.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Caching.Memory/6.0.3": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-GVNNcHoPDEUn4OQiBBGs5mE6nX7BA+LeQId9NeA+gB8xcbDUmFPAl8Er2ixNLbn4ffFr8t5jfMwdxgFG66k7BA==",
+      "path": "microsoft.extensions.caching.memory/6.0.3",
+      "hashPath": "microsoft.extensions.caching.memory.6.0.3.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Configuration/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-YIMO9T3JL8MeEXgVozKt2v79hquo/EFtnY0vgxmLnUvk1Rei/halI7kOWZL2RBeV9FMGzgM9LZA8CVaNwFMaNA==",
+      "path": "microsoft.extensions.configuration/9.0.0",
+      "hashPath": "microsoft.extensions.configuration.9.0.0.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Configuration.Abstractions/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-lqvd7W3FGKUO1+ZoUEMaZ5XDJeWvjpy2/M/ptCGz3tXLD4HWVaSzjufsAsjemasBEg+2SxXVtYVvGt5r2nKDlg==",
+      "path": "microsoft.extensions.configuration.abstractions/9.0.0",
+      "hashPath": "microsoft.extensions.configuration.abstractions.9.0.0.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Configuration.FileExtensions/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-4EK93Jcd2lQG4GY6PAw8jGss0ZzFP0vPc1J85mES5fKNuDTqgFXHba9onBw2s18fs3I4vdo2AWyfD1mPAxWSQQ==",
+      "path": "microsoft.extensions.configuration.fileextensions/9.0.0",
+      "hashPath": "microsoft.extensions.configuration.fileextensions.9.0.0.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Configuration.Json/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-WiTK0LrnsqmedrbzwL7f4ZUo+/wByqy2eKab39I380i2rd8ImfCRMrtkqJVGDmfqlkP/YzhckVOwPc5MPrSNpg==",
+      "path": "microsoft.extensions.configuration.json/9.0.0",
+      "hashPath": "microsoft.extensions.configuration.json.9.0.0.nupkg.sha512"
+    },
+    "Microsoft.Extensions.DependencyInjection/6.0.2": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-gWUfUZ2ZDvwiVCxsOMComAhG43xstNWWVjV2takUZYRuDSJjO9Q5/b3tfOSkl5mcVwZAL3RZviRj5ZilxHghlw==",
+      "path": "microsoft.extensions.dependencyinjection/6.0.2",
+      "hashPath": "microsoft.extensions.dependencyinjection.6.0.2.nupkg.sha512"
     },
     "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0": {
       "type": "package",
@@ -2057,19 +2999,54 @@
       "path": "microsoft.extensions.dependencymodel/6.0.0",
       "hashPath": "microsoft.extensions.dependencymodel.6.0.0.nupkg.sha512"
     },
-    "Microsoft.Extensions.Options/6.0.0": {
+    "Microsoft.Extensions.FileProviders.Abstractions/9.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==",
-      "path": "microsoft.extensions.options/6.0.0",
-      "hashPath": "microsoft.extensions.options.6.0.0.nupkg.sha512"
+      "sha512": "sha512-uK439QzYR0q2emLVtYzwyK3x+T5bTY4yWsd/k/ZUS9LR6Sflp8MIdhGXW8kQCd86dQD4tLqvcbLkku8qHY263Q==",
+      "path": "microsoft.extensions.fileproviders.abstractions/9.0.0",
+      "hashPath": "microsoft.extensions.fileproviders.abstractions.9.0.0.nupkg.sha512"
     },
-    "Microsoft.Extensions.Primitives/6.0.0": {
+    "Microsoft.Extensions.FileProviders.Physical/9.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==",
-      "path": "microsoft.extensions.primitives/6.0.0",
-      "hashPath": "microsoft.extensions.primitives.6.0.0.nupkg.sha512"
+      "sha512": "sha512-3+ZUSpOSmie+o8NnLIRqCxSh65XL/ExU7JYnFOg58awDRlY3lVpZ9A369jkoZL1rpsq7LDhEfkn2ghhGaY1y5Q==",
+      "path": "microsoft.extensions.fileproviders.physical/9.0.0",
+      "hashPath": "microsoft.extensions.fileproviders.physical.9.0.0.nupkg.sha512"
+    },
+    "Microsoft.Extensions.FileSystemGlobbing/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-jGFKZiXs2HNseK3NK/rfwHNNovER71jSj4BD1a/649ml9+h6oEtYd0GSALZDNW8jZ2Rh+oAeadOa6sagYW1F2A==",
+      "path": "microsoft.extensions.filesystemglobbing/9.0.0",
+      "hashPath": "microsoft.extensions.filesystemglobbing.9.0.0.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Logging/6.0.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-k6tbYaHrqY9kq7p5FfpPbddY1OImPCpXQ/PGcED6N9s5ULRp8n1PdmMzsIwIzCnhIS5bs06G/lO9LfNVpUj8jg==",
+      "path": "microsoft.extensions.logging/6.0.1",
+      "hashPath": "microsoft.extensions.logging.6.0.1.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Logging.Abstractions/6.0.4": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==",
+      "path": "microsoft.extensions.logging.abstractions/6.0.4",
+      "hashPath": "microsoft.extensions.logging.abstractions.6.0.4.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Options/6.0.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-v5rh5jRcLBOKOaLVyYCm4TY/RoJlxWsW7N2TAPkmlHe55/0cB0Syp979x4He1+MIXsaTvJl1WOc7b1D1PSsO3A==",
+      "path": "microsoft.extensions.options/6.0.1",
+      "hashPath": "microsoft.extensions.options.6.0.1.nupkg.sha512"
+    },
+    "Microsoft.Extensions.Primitives/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-N3qEBzmLMYiASUlKxxFIISP4AiwuPTHF5uCh+2CWSwwzAJiIYx0kBJsS30cp1nvhSySFAVi30jecD307jV+8Kg==",
+      "path": "microsoft.extensions.primitives/9.0.0",
+      "hashPath": "microsoft.extensions.primitives.9.0.0.nupkg.sha512"
     },
     "Microsoft.Identity.Client/4.21.1": {
       "type": "package",
@@ -2141,12 +3118,12 @@
       "path": "microsoft.netcore.targets/1.1.3",
       "hashPath": "microsoft.netcore.targets.1.1.3.nupkg.sha512"
     },
-    "Microsoft.OpenApi/1.3.1": {
+    "Microsoft.OpenApi/1.6.14": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-2X5CCFJCnx6v86fnpOg4TKlU1ba7MSf1yakeT7VI4846s7i6fOkERwStX94Rcq8wJsLyQYsUitd6vR38viePeA==",
-      "path": "microsoft.openapi/1.3.1",
-      "hashPath": "microsoft.openapi.1.3.1.nupkg.sha512"
+      "sha512": "sha512-tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==",
+      "path": "microsoft.openapi/1.6.14",
+      "hashPath": "microsoft.openapi.1.6.14.nupkg.sha512"
     },
     "Microsoft.Win32.Primitives/4.0.1": {
       "type": "package",
@@ -2162,12 +3139,12 @@
       "path": "microsoft.win32.registry/4.7.0",
       "hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512"
     },
-    "Microsoft.Win32.SystemEvents/6.0.0": {
+    "Microsoft.Win32.SystemEvents/7.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==",
-      "path": "microsoft.win32.systemevents/6.0.0",
-      "hashPath": "microsoft.win32.systemevents.6.0.0.nupkg.sha512"
+      "sha512": "sha512-2nXPrhdAyAzir0gLl8Yy8S5Mnm/uBSQQA7jEsILOS1MTyS7DbmV1NgViMtvV1sfCD1ebITpNwb1NIinKeJgUVQ==",
+      "path": "microsoft.win32.systemevents/7.0.0",
+      "hashPath": "microsoft.win32.systemevents.7.0.0.nupkg.sha512"
     },
     "MiniProfiler.AspNetCore/4.3.8": {
       "type": "package",
@@ -2189,6 +3166,20 @@
       "sha512": "sha512-SfXNX90fmDm373YAla0z06plTCj6YbByQJOm6G8/9kE6Hf4UALJxySyiMB9O4KYeTc6Ha1EFQDs6jLhio+bBFA==",
       "path": "miniprofiler.shared/4.3.8",
       "hashPath": "miniprofiler.shared.4.3.8.nupkg.sha512"
+    },
+    "MoYu.Pure/4.9.5.5": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-T4GhMPeetUc5qKHBTNU7ZlMeBqjF/2UmSLSp4NWEtKhhz9U95Z1VlkB64IUOt+jem7P5cX7mIfxHdMDe3W7k1w==",
+      "path": "moyu.pure/4.9.5.5",
+      "hashPath": "moyu.pure.4.9.5.5.nupkg.sha512"
+    },
+    "MoYu.Pure.Extras.DependencyModel.CodeAnalysis/4.9.5.5": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-q0dxy9L/GAu1r9VuVSTjVdz9oiK5V5X4jSBuua4ceNAfJUoHazVTsPHwX/xxDtBGMhNwLLDkPPThf8X2uYt+8A==",
+      "path": "moyu.pure.extras.dependencymodel.codeanalysis/4.9.5.5",
+      "hashPath": "moyu.pure.extras.dependencymodel.codeanalysis.4.9.5.5.nupkg.sha512"
     },
     "MySqlConnector/2.2.5": {
       "type": "package",
@@ -2274,12 +3265,12 @@
       "path": "runtime.native.system/4.3.0",
       "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
     },
-    "runtime.native.System.IO.Compression/4.3.0": {
+    "runtime.native.System.IO.Compression/4.1.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"
+      "sha512": "sha512-Ob7nvnJBox1aaB222zSVZSkf4WrebPG4qFscfK7vmD7P7NxoSxACQLtO7ytWpqXDn2wcd/+45+EAZ7xjaPip8A==",
+      "path": "runtime.native.system.io.compression/4.1.0",
+      "hashPath": "runtime.native.system.io.compression.4.1.0.nupkg.sha512"
     },
     "runtime.native.System.Net.Http/4.3.0": {
       "type": "package",
@@ -2365,12 +3356,33 @@
       "path": "scrutor/3.3.0",
       "hashPath": "scrutor.3.3.0.nupkg.sha512"
     },
-    "SixLabors.ImageSharp/3.0.0": {
+    "SharpCompress/0.38.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-ETEHRfUAn/rExqdmj2GDayPkW9zr3BruO9S4WF9ULpWmdydewIjoJqinbQc+o4DsM3X0wGZPyJLlj6N3uxV/aw==",
-      "path": "sixlabors.imagesharp/3.0.0",
-      "hashPath": "sixlabors.imagesharp.3.0.0.nupkg.sha512"
+      "sha512": "sha512-8i6KqjAFI3mvya8W8rnQrf5h4vz6ilw4zqk2AzInVqqqZ25TD6fmVeYBnlisjTWwP26eltZc0buSmJ8a3YIGxg==",
+      "path": "sharpcompress/0.38.0",
+      "hashPath": "sharpcompress.0.38.0.nupkg.sha512"
+    },
+    "SixLabors.Fonts/2.0.4": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-4+NKz8W36injp98lmmM07ncp08HAK8c6FZz8vLoKxRPfJeEVWpBHlLYEbQa5rcqKKYqxUv/RVCrb8XcPhfMKUQ==",
+      "path": "sixlabors.fonts/2.0.4",
+      "hashPath": "sixlabors.fonts.2.0.4.nupkg.sha512"
+    },
+    "SixLabors.ImageSharp/3.1.5": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-lNtlq7dSI/QEbYey+A0xn48z5w4XHSffF8222cC4F4YwTXfEImuiBavQcWjr49LThT/pRmtWJRcqA/PlL+eJ6g==",
+      "path": "sixlabors.imagesharp/3.1.5",
+      "hashPath": "sixlabors.imagesharp.3.1.5.nupkg.sha512"
+    },
+    "SixLabors.ImageSharp.Drawing/2.1.4": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-p4VwtAABggDUhUS5zXldCZHVGfjJl76+SrBHY4biNQ8+890igFK6RL87qIv9GqvEjMcYOar1sPkf2iMQ6uq9/g==",
+      "path": "sixlabors.imagesharp.drawing/2.1.4",
+      "hashPath": "sixlabors.imagesharp.drawing.2.1.4.nupkg.sha512"
     },
     "SkiaSharp/2.88.8": {
       "type": "package",
@@ -2449,12 +3461,12 @@
       "path": "sqlsugarcore.kdbndp/9.3.6.411",
       "hashPath": "sqlsugarcore.kdbndp.9.3.6.411.nupkg.sha512"
     },
-    "Swashbuckle.AspNetCore/6.5.0": {
+    "Swashbuckle.AspNetCore/6.7.2": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-FK05XokgjgwlCI6wCT+D4/abtQkL1X1/B9Oas6uIwHFmYrIO9WUD5aLC9IzMs9GnHfUXOtXZ2S43gN1mhs5+aA==",
-      "path": "swashbuckle.aspnetcore/6.5.0",
-      "hashPath": "swashbuckle.aspnetcore.6.5.0.nupkg.sha512"
+      "sha512": "sha512-464D/dwPzHUE8gbj2DVOTY8SkITwu/S0KBfJFMWIfYVVJa7d/fFCm6yMK5KFzhaDqznClXFROwnP+R5Zyptz2g==",
+      "path": "swashbuckle.aspnetcore/6.7.2",
+      "hashPath": "swashbuckle.aspnetcore.6.7.2.nupkg.sha512"
     },
     "Swashbuckle.AspNetCore.Filters/7.0.5": {
       "type": "package",
@@ -2477,26 +3489,26 @@
       "path": "swashbuckle.aspnetcore.newtonsoft/6.5.0",
       "hashPath": "swashbuckle.aspnetcore.newtonsoft.6.5.0.nupkg.sha512"
     },
-    "Swashbuckle.AspNetCore.Swagger/6.5.0": {
+    "Swashbuckle.AspNetCore.Swagger/6.7.2": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-XWmCmqyFmoItXKFsQSwQbEAsjDKcxlNf1l+/Ki42hcb6LjKL8m5Db69OTvz5vLonMSRntYO1XLqz0OP+n3vKnA==",
-      "path": "swashbuckle.aspnetcore.swagger/6.5.0",
-      "hashPath": "swashbuckle.aspnetcore.swagger.6.5.0.nupkg.sha512"
+      "sha512": "sha512-bFKfYjlHjnQFB1vbsIEhxPWlKx5dHuCAUXUxun1ZjqF5BNcV7fSunSpRKAx3fUGUZD76+KlPVhik3sTXqT9i8g==",
+      "path": "swashbuckle.aspnetcore.swagger/6.7.2",
+      "hashPath": "swashbuckle.aspnetcore.swagger.6.7.2.nupkg.sha512"
     },
-    "Swashbuckle.AspNetCore.SwaggerGen/6.5.0": {
+    "Swashbuckle.AspNetCore.SwaggerGen/6.7.2": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-Y/qW8Qdg9OEs7V013tt+94OdPxbRdbhcEbw4NiwGvf4YBcfhL/y7qp/Mjv/cENsQ2L3NqJ2AOu94weBy/h4KvA==",
-      "path": "swashbuckle.aspnetcore.swaggergen/6.5.0",
-      "hashPath": "swashbuckle.aspnetcore.swaggergen.6.5.0.nupkg.sha512"
+      "sha512": "sha512-QWsO8lGWwHq3Xx8X96R/pjNvwvpuo02Mcu/kZlxgo/6UimYZNUaItrk7lp3zXFP864+/iMIT3EKPKdEWuW5zJw==",
+      "path": "swashbuckle.aspnetcore.swaggergen/6.7.2",
+      "hashPath": "swashbuckle.aspnetcore.swaggergen.6.7.2.nupkg.sha512"
     },
-    "Swashbuckle.AspNetCore.SwaggerUI/6.5.0": {
+    "Swashbuckle.AspNetCore.SwaggerUI/6.7.2": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-OvbvxX+wL8skxTBttcBsVxdh73Fag4xwqEU2edh4JMn7Ws/xJHnY/JB1e9RoCb6XpDxUF3hD9A0Z1lEUx40Pfw==",
-      "path": "swashbuckle.aspnetcore.swaggerui/6.5.0",
-      "hashPath": "swashbuckle.aspnetcore.swaggerui.6.5.0.nupkg.sha512"
+      "sha512": "sha512-9zw5wMh75u2LX+FyvoX4vXPHi8sWUmzD2coY35OnFkTpA156aZpeaLf8u3URukjBWJKpBK+eENnWzTCc4z6lSA==",
+      "path": "swashbuckle.aspnetcore.swaggerui/6.7.2",
+      "hashPath": "swashbuckle.aspnetcore.swaggerui.6.7.2.nupkg.sha512"
     },
     "System.AppContext/4.1.0": {
       "type": "package",
@@ -2512,6 +3524,13 @@
       "path": "system.buffers/4.5.1",
       "hashPath": "system.buffers.4.5.1.nupkg.sha512"
     },
+    "System.CodeDom/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-oTE5IfuMoET8yaZP/vdvy9xO47guAv/rOhe4DODuFBN3ySprcQOlXqO3j+e/H/YpKKR5sglrxRaZ2HYOhNJrqA==",
+      "path": "system.codedom/9.0.0",
+      "hashPath": "system.codedom.9.0.0.nupkg.sha512"
+    },
     "System.Collections/4.3.0": {
       "type": "package",
       "serviceable": true,
@@ -2526,12 +3545,12 @@
       "path": "system.collections.concurrent/4.3.0",
       "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512"
     },
-    "System.Collections.Immutable/1.3.0": {
+    "System.Collections.Immutable/8.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-zukBRPUuNxwy9m4TGWLxKAnoiMc9+B+8VXeXVyPiBPvOd7yLgAlZ1DlsRWJjMx4VsvhhF2+6q6kO2GRbPja6hA==",
-      "path": "system.collections.immutable/1.3.0",
-      "hashPath": "system.collections.immutable.1.3.0.nupkg.sha512"
+      "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+      "path": "system.collections.immutable/8.0.0",
+      "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
     },
     "System.ComponentModel/4.3.0": {
       "type": "package",
@@ -2554,12 +3573,54 @@
       "path": "system.componentmodel.primitives/4.3.0",
       "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512"
     },
-    "System.Configuration.ConfigurationManager/6.0.0": {
+    "System.Composition/8.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-7T+m0kDSlIPTHIkPMIu6m6tV6qsMqJpvQWW2jIc2qi7sn40qxFo0q+7mEQAhMPXZHMKnWrnv47ntGlM/ejvw3g==",
-      "path": "system.configuration.configurationmanager/6.0.0",
-      "hashPath": "system.configuration.configurationmanager.6.0.0.nupkg.sha512"
+      "sha512": "sha512-E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==",
+      "path": "system.composition/8.0.0",
+      "hashPath": "system.composition.8.0.0.nupkg.sha512"
+    },
+    "System.Composition.AttributedModel/8.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==",
+      "path": "system.composition.attributedmodel/8.0.0",
+      "hashPath": "system.composition.attributedmodel.8.0.0.nupkg.sha512"
+    },
+    "System.Composition.Convention/8.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==",
+      "path": "system.composition.convention/8.0.0",
+      "hashPath": "system.composition.convention.8.0.0.nupkg.sha512"
+    },
+    "System.Composition.Hosting/8.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==",
+      "path": "system.composition.hosting/8.0.0",
+      "hashPath": "system.composition.hosting.8.0.0.nupkg.sha512"
+    },
+    "System.Composition.Runtime/8.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==",
+      "path": "system.composition.runtime/8.0.0",
+      "hashPath": "system.composition.runtime.8.0.0.nupkg.sha512"
+    },
+    "System.Composition.TypedParts/8.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==",
+      "path": "system.composition.typedparts/8.0.0",
+      "hashPath": "system.composition.typedparts.8.0.0.nupkg.sha512"
+    },
+    "System.Configuration.ConfigurationManager/7.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-WvRUdlL1lB0dTRZSs5XcQOd5q9MYNk90GkbmRmiCvRHThWiojkpGqWdmEDJdXyHbxG/BhE5hmVbMfRLXW9FJVA==",
+      "path": "system.configuration.configurationmanager/7.0.0",
+      "hashPath": "system.configuration.configurationmanager.7.0.0.nupkg.sha512"
     },
     "System.Console/4.0.0": {
       "type": "package",
@@ -2596,12 +3657,12 @@
       "path": "system.diagnostics.eventlog/6.0.0",
       "hashPath": "system.diagnostics.eventlog.6.0.0.nupkg.sha512"
     },
-    "System.Diagnostics.PerformanceCounter/6.0.1": {
+    "System.Diagnostics.PerformanceCounter/7.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-dDl7Gx3bmSrM2k2ZIm+ucEJnLloZRyvfQF1DvfvATcGF3jtaUBiPvChma+6ZcZzxWMirN3kCywkW7PILphXyMQ==",
-      "path": "system.diagnostics.performancecounter/6.0.1",
-      "hashPath": "system.diagnostics.performancecounter.6.0.1.nupkg.sha512"
+      "sha512": "sha512-L+zIMEaXp1vA4wZk1KLMpk6tvU0xy94R0IfmhkmTWeC4KwShsmAfbg5I19LgjsCTYp6GVdXZ2aHluVWL0QqBdA==",
+      "path": "system.diagnostics.performancecounter/7.0.0",
+      "hashPath": "system.diagnostics.performancecounter.7.0.0.nupkg.sha512"
     },
     "System.Diagnostics.StackTrace/4.3.0": {
       "type": "package",
@@ -2638,12 +3699,12 @@
       "path": "system.directoryservices.protocols/6.0.1",
       "hashPath": "system.directoryservices.protocols.6.0.1.nupkg.sha512"
     },
-    "System.Drawing.Common/6.0.0": {
+    "System.Drawing.Common/7.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==",
-      "path": "system.drawing.common/6.0.0",
-      "hashPath": "system.drawing.common.6.0.0.nupkg.sha512"
+      "sha512": "sha512-KIX+oBU38pxkKPxvLcLfIkOV5Ien8ReN78wro7OF5/erwcmortzeFx+iBswlh2Vz6gVne0khocQudGwaO1Ey6A==",
+      "path": "system.drawing.common/7.0.0",
+      "hashPath": "system.drawing.common.7.0.0.nupkg.sha512"
     },
     "System.Dynamic.Runtime/4.3.0": {
       "type": "package",
@@ -2694,12 +3755,12 @@
       "path": "system.io/4.3.0",
       "hashPath": "system.io.4.3.0.nupkg.sha512"
     },
-    "System.IO.Compression/4.3.0": {
+    "System.IO.Compression/4.1.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"
+      "sha512": "sha512-TjnBS6eztThSzeSib+WyVbLzEdLKUcEHN69VtS3u8aAsSc18FU6xCZlNWWsEd8SKcXAE+y1sOu7VbU8sUeM0sg==",
+      "path": "system.io.compression/4.1.0",
+      "hashPath": "system.io.compression.4.1.0.nupkg.sha512"
     },
     "System.IO.Compression.ZipFile/4.0.1": {
       "type": "package",
@@ -2729,6 +3790,13 @@
       "path": "system.io.packaging/4.0.0",
       "hashPath": "system.io.packaging.4.0.0.nupkg.sha512"
     },
+    "System.IO.Pipelines/9.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==",
+      "path": "system.io.pipelines/9.0.0",
+      "hashPath": "system.io.pipelines.9.0.0.nupkg.sha512"
+    },
     "System.Linq/4.3.0": {
       "type": "package",
       "serviceable": true,
@@ -2750,12 +3818,19 @@
       "path": "system.linq.expressions/4.3.0",
       "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
     },
-    "System.Memory/4.5.4": {
+    "System.Management/9.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==",
-      "path": "system.memory/4.5.4",
-      "hashPath": "system.memory.4.5.4.nupkg.sha512"
+      "sha512": "sha512-bVh4xAMI5grY5GZoklKcMBLirhC8Lqzp63Ft3zXJacwGAlLyFdF4k0qz4pnKIlO6HyL2Z4zqmHm9UkzEo6FFsA==",
+      "path": "system.management/9.0.0",
+      "hashPath": "system.management.9.0.0.nupkg.sha512"
+    },
+    "System.Memory/4.5.5": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
+      "path": "system.memory/4.5.5",
+      "hashPath": "system.memory.4.5.5.nupkg.sha512"
     },
     "System.Net.Http/4.3.4": {
       "type": "package",
@@ -2777,6 +3852,13 @@
       "sha512": "sha512-xAz0N3dAV/aR/9g8r0Y5oEqU1JRsz29F5EGb/WVHmX3jVSLqi2/92M5hTad2aNWovruXrJpJtgZ9fccPMG9uSw==",
       "path": "system.net.sockets/4.1.0",
       "hashPath": "system.net.sockets.4.1.0.nupkg.sha512"
+    },
+    "System.Numerics.Vectors/4.5.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==",
+      "path": "system.numerics.vectors/4.5.0",
+      "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512"
     },
     "System.ObjectModel/4.3.0": {
       "type": "package",
@@ -2806,12 +3888,12 @@
       "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": {
+    "System.Reflection.Emit.Lightweight/4.7.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"
+      "sha512": "sha512-a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA==",
+      "path": "system.reflection.emit.lightweight/4.7.0",
+      "hashPath": "system.reflection.emit.lightweight.4.7.0.nupkg.sha512"
     },
     "System.Reflection.Extensions/4.3.0": {
       "type": "package",
@@ -2820,12 +3902,12 @@
       "path": "system.reflection.extensions/4.3.0",
       "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
     },
-    "System.Reflection.Metadata/1.4.1": {
+    "System.Reflection.Metadata/8.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-tc2ZyJgweHCLci5oQGuhQn9TD0Ii9DReXkHtZm3aAGp8xe40rpRjiTbMXOtZU+fr0BOQ46goE9+qIqRGjR9wGg==",
-      "path": "system.reflection.metadata/1.4.1",
-      "hashPath": "system.reflection.metadata.1.4.1.nupkg.sha512"
+      "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+      "path": "system.reflection.metadata/8.0.0",
+      "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
     },
     "System.Reflection.Primitives/4.3.0": {
       "type": "package",
@@ -2967,12 +4049,12 @@
       "path": "system.security.cryptography.primitives/4.3.0",
       "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512"
     },
-    "System.Security.Cryptography.ProtectedData/6.0.0": {
+    "System.Security.Cryptography.ProtectedData/7.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==",
-      "path": "system.security.cryptography.protecteddata/6.0.0",
-      "hashPath": "system.security.cryptography.protecteddata.6.0.0.nupkg.sha512"
+      "sha512": "sha512-xSPiLNlHT6wAHtugASbKAJwV5GVqQK351crnILAucUioFqqieDN79evO1rku1ckt/GfjIn+b17UaSskoY03JuA==",
+      "path": "system.security.cryptography.protecteddata/7.0.0",
+      "hashPath": "system.security.cryptography.protecteddata.7.0.0.nupkg.sha512"
     },
     "System.Security.Cryptography.X509Certificates/4.3.0": {
       "type": "package",
@@ -2981,12 +4063,12 @@
       "path": "system.security.cryptography.x509certificates/4.3.0",
       "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512"
     },
-    "System.Security.Permissions/6.0.0": {
+    "System.Security.Permissions/7.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==",
-      "path": "system.security.permissions/6.0.0",
-      "hashPath": "system.security.permissions.6.0.0.nupkg.sha512"
+      "sha512": "sha512-Vmp0iRmCEno9BWiskOW5pxJ3d9n+jUqKxvX4GhLwFhnQaySZmBN2FuC0N5gjFHgyFMUjC5sfIJ8KZfoJwkcMmA==",
+      "path": "system.security.permissions/7.0.0",
+      "hashPath": "system.security.permissions.7.0.0.nupkg.sha512"
     },
     "System.Security.Principal.Windows/4.7.0": {
       "type": "package",
@@ -3002,33 +4084,33 @@
       "path": "system.text.encoding/4.3.0",
       "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
     },
-    "System.Text.Encoding.CodePages/6.0.0": {
+    "System.Text.Encoding.CodePages/7.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"
+      "sha512": "sha512-LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==",
+      "path": "system.text.encoding.codepages/7.0.0",
+      "hashPath": "system.text.encoding.codepages.7.0.0.nupkg.sha512"
     },
-    "System.Text.Encoding.Extensions/4.3.0": {
+    "System.Text.Encoding.Extensions/4.0.11": {
       "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"
+      "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
+      "path": "system.text.encoding.extensions/4.0.11",
+      "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512"
     },
-    "System.Text.Encodings.Web/6.0.0": {
+    "System.Text.Encodings.Web/9.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==",
-      "path": "system.text.encodings.web/6.0.0",
-      "hashPath": "system.text.encodings.web.6.0.0.nupkg.sha512"
+      "sha512": "sha512-e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==",
+      "path": "system.text.encodings.web/9.0.0",
+      "hashPath": "system.text.encodings.web.9.0.0.nupkg.sha512"
     },
-    "System.Text.Json/6.0.0": {
+    "System.Text.Json/9.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==",
-      "path": "system.text.json/6.0.0",
-      "hashPath": "system.text.json.6.0.0.nupkg.sha512"
+      "sha512": "sha512-js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==",
+      "path": "system.text.json/9.0.0",
+      "hashPath": "system.text.json.9.0.0.nupkg.sha512"
     },
     "System.Text.RegularExpressions/4.3.1": {
       "type": "package",
@@ -3044,6 +4126,13 @@
       "path": "system.threading/4.3.0",
       "hashPath": "system.threading.4.3.0.nupkg.sha512"
     },
+    "System.Threading.Channels/7.0.0": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==",
+      "path": "system.threading.channels/7.0.0",
+      "hashPath": "system.threading.channels.7.0.0.nupkg.sha512"
+    },
     "System.Threading.Tasks/4.3.0": {
       "type": "package",
       "serviceable": true,
@@ -3051,12 +4140,12 @@
       "path": "system.threading.tasks/4.3.0",
       "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
     },
-    "System.Threading.Tasks.Extensions/4.0.0": {
+    "System.Threading.Tasks.Extensions/4.5.4": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==",
-      "path": "system.threading.tasks.extensions/4.0.0",
-      "hashPath": "system.threading.tasks.extensions.4.0.0.nupkg.sha512"
+      "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
+      "path": "system.threading.tasks.extensions/4.5.4",
+      "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512"
     },
     "System.Threading.Tasks.Parallel/4.3.0": {
       "type": "package",
@@ -3072,12 +4161,12 @@
       "path": "system.threading.timer/4.0.1",
       "hashPath": "system.threading.timer.4.0.1.nupkg.sha512"
     },
-    "System.Windows.Extensions/6.0.0": {
+    "System.Windows.Extensions/7.0.0": {
       "type": "package",
       "serviceable": true,
-      "sha512": "sha512-IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==",
-      "path": "system.windows.extensions/6.0.0",
-      "hashPath": "system.windows.extensions.6.0.0.nupkg.sha512"
+      "sha512": "sha512-bR4qdCmssMMbo9Fatci49An5B1UaVJZHKNq70PRgzoLYIlitb8Tj7ns/Xt5Pz1CkERiTjcVBDU2y1AVrPBYkaw==",
+      "path": "system.windows.extensions/7.0.0",
+      "hashPath": "system.windows.extensions.7.0.0.nupkg.sha512"
     },
     "System.Xml.ReaderWriter/4.0.11": {
       "type": "package",
@@ -3106,6 +4195,13 @@
       "sha512": "sha512-FLhdYJx4331oGovQypQ8JIw2kEmNzCsjVOVYY/16kZTUoquZG85oVn7yUhBE2OZt1yGPSXAL0HTEfzjlbNpM7Q==",
       "path": "system.xml.xpath.xdocument/4.0.1",
       "hashPath": "system.xml.xpath.xdocument.4.0.1.nupkg.sha512"
+    },
+    "ZstdSharp.Port/0.8.1": {
+      "type": "package",
+      "serviceable": true,
+      "sha512": "sha512-19tNz33kn2EkyViFXuxfVn338UJaRmkwBphVqP2dVJIYQUQgFrgG5h061mxkRRg1Ax6r+6WOj1FxaFZ5qaWqqg==",
+      "path": "zstdsharp.port/0.8.1",
+      "hashPath": "zstdsharp.port.0.8.1.nupkg.sha512"
     }
   }
 }
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/WIDESEAWCS_Core.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/WIDESEAWCS_Core.csproj.nuget.g.targets
index 1b27aba..b8b97ff 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/WIDESEAWCS_Core.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/WIDESEAWCS_Core.csproj.nuget.g.targets
@@ -1,7 +1,23 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/WIDESEAWCS_DTO.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/WIDESEAWCS_DTO.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/WIDESEAWCS_DTO.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/WIDESEAWCS_DTO.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/WIDESEAWCS_ISystemServices.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/WIDESEAWCS_ISystemServices.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/WIDESEAWCS_ISystemServices.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/WIDESEAWCS_ISystemServices.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/WIDESEAWCS_ITaskInfoRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/WIDESEAWCS_ITaskInfoRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/WIDESEAWCS_ITaskInfoRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/WIDESEAWCS_ITaskInfoRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/WIDESEAWCS_ITaskInfoService.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/WIDESEAWCS_ITaskInfoService.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/WIDESEAWCS_ITaskInfoService.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/WIDESEAWCS_ITaskInfoService.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/WIDESEAWCS_ITaskInfo_HtyService.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/WIDESEAWCS_ITaskInfo_HtyService.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/WIDESEAWCS_ITaskInfo_HtyService.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/WIDESEAWCS_ITaskInfo_HtyService.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/WIDESEAWCS_Model.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/WIDESEAWCS_Model.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/WIDESEAWCS_Model.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/WIDESEAWCS_Model.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln
index 3bb85f9..5d54fc1 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln
@@ -78,6 +78,8 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEAWCS_ITaskInfo_HtyService", "WIDESEAWCS_ITaskInfo_HtyService\WIDESEAWCS_ITaskInfo_HtyService.csproj", "{61271216-85F8-4425-BAFB-1BEE4A35F5F9}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEAWCS_SignalR", "WIDESEAWCS_SignalR\WIDESEAWCS_SignalR.csproj", "{59D26679-7299-4251-A58E-3AC3C6FA717E}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -188,6 +190,10 @@
 		{61271216-85F8-4425-BAFB-1BEE4A35F5F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{61271216-85F8-4425-BAFB-1BEE4A35F5F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{61271216-85F8-4425-BAFB-1BEE4A35F5F9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{59D26679-7299-4251-A58E-3AC3C6FA717E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{59D26679-7299-4251-A58E-3AC3C6FA717E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{59D26679-7299-4251-A58E-3AC3C6FA717E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{59D26679-7299-4251-A58E-3AC3C6FA717E}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
index e867020..9e41ecf 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -21,6 +21,8 @@
 using Autofac.Core;
 using WIDESEAWCS_QuartzJob.QuartzExtensions;
 using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.SignalR;
+using WIDESEAWCS_SignalR;
 
 var builder = WebApplication.CreateBuilder(args);
 
@@ -35,7 +37,7 @@
     config.Sources.Clear();
     config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false);
 }); ;
-builder.ConfigureApplication();
+builder.Inject().ConfigureApplication();
 
 
 // 2、配置服务
@@ -60,6 +62,10 @@
 builder.Services.AddJobSetup();//任务调度 启动服务
 
 builder.Services.AddHttpContextSetup();
+
+ConsoleHelper.WriteSuccessLine("注册SignalR插件");
+builder.Services.AddSignalR();//注册SignalR
+builder.Services.AddSingleton<IUserIdProvider, UserIdProvider>();//用户ID提供器
 
 builder.Services.AddHostedService<QuartzJobHostedService>();
 
@@ -135,6 +141,7 @@
 app.UseAuthentication();
 app.UseAuthorization();
 
+app.MapHubs();
 app.MapControllers();
 
 app.Run();
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
index 49e35a3..9fae611 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
@@ -73,11 +73,12 @@
 	</ItemGroup>
 
 	<ItemGroup>
-		<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
+		<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.2" />
 	</ItemGroup>
 
 	<ItemGroup>
 		<ProjectReference Include="..\WIDESEAWCS_QuartzJob\WIDESEAWCS_QuartzJob.csproj" />
+		<ProjectReference Include="..\WIDESEAWCS_SignalR\WIDESEAWCS_SignalR.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_SystemServices\WIDESEAWCS_SystemServices.csproj" />
 		<ProjectReference Include="..\WIDESEAWCs_TaskInfoService\WIDESEAWCs_TaskInfoService.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_Tasks\WIDESEAWCS_Tasks.csproj" />
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.g.targets
index 1b27aba..b8b97ff 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.g.targets
@@ -1,7 +1,23 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.apidescription.server\6.0.5\build\Microsoft.Extensions.ApiDescription.Server.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/GlobalUsing.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/GlobalUsing.cs
new file mode 100644
index 0000000..8f3015e
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/GlobalUsing.cs
@@ -0,0 +1,9 @@
+锘縢lobal using Microsoft.AspNetCore.SignalR;
+global using Masuit.Tools;
+global using Microsoft.AspNetCore.Http.Connections;
+global using MoYu.InstantMessaging;
+global using WIDESEAWCS_Core.Caches;
+global using WIDESEAWCS_Core.HttpContextUser;
+global using MoYu;
+global using MoYu.DependencyInjection;
+global using WIDESEAWCS_Core.Authorization;
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/ISimpleHub.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/ISimpleHub.cs
new file mode 100644
index 0000000..2816628
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/ISimpleHub.cs
@@ -0,0 +1,35 @@
+锘縩amespace WIDESEAWCS_SignalR;
+
+/// <summary>
+/// 鍗虫椂閫氳闆嗙嚎鍣�
+/// </summary>
+public interface ISimpleHub
+{
+    /// <summary>
+    /// 閫�鍑虹櫥褰�
+    /// </summary>
+    /// <param name="context"></param>
+    /// <returns></returns>
+    Task LoginOut(object context);
+
+    /// <summary>
+    /// 鏂版秷鎭�
+    /// </summary>
+    /// <param name="context"></param>
+    /// <returns></returns>
+    Task NewMessage(object context);
+
+    /// <summary>
+    /// 鍫嗗灈鏈烘暟鎹�
+    /// </summary>
+    /// <param name="context"></param>
+    /// <returns></returns>
+    Task StackerData(object context);
+
+    /// <summary>
+    /// 绾夸綋鏁版嵁
+    /// </summary>
+    /// <param name="context"></param>
+    /// <returns></returns>
+    Task LineData(object context);
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/SimpleHub.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/SimpleHub.cs
new file mode 100644
index 0000000..9843f85
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/SimpleHub.cs
@@ -0,0 +1,119 @@
+锘�
+
+namespace WIDESEAWCS_SignalR;
+
+/// <summary>
+/// <inheritdoc cref="ISimpleHub"/>
+/// </summary>
+//[Authorize]
+[MapHub("/hubs/simple")]
+public class SimpleHub : Hub<ISimpleHub>
+{
+    private readonly ICacheService _simpleCacheService;
+
+    public SimpleHub(ICacheService simpleCacheService)
+    {
+        _simpleCacheService = simpleCacheService;
+    }
+
+    /// <summary>
+    /// 杩炴帴
+    /// </summary>
+    /// <returns></returns>
+    public override async Task OnConnectedAsync()
+    {
+        var token = Context.GetHttpContext().Request.Query["access_token"];//鑾峰彇token
+        if (!string.IsNullOrEmpty(token))
+        {
+            var userIdentifier = Context.UserIdentifier;//鑷畾涔夌殑Id
+            UpdateRedis(userIdentifier, token);//鏇存柊redis
+        }
+    }
+
+    /// <summary>
+    /// 鏂紑杩炴帴
+    /// </summary>
+    /// <param name="exception"></param>
+    /// <returns></returns>
+    public override async Task OnDisconnectedAsync(Exception? exception)
+    {
+        var userIdentifier = Context.UserIdentifier;//鑷畾涔夌殑Id
+        UpdateRedis(userIdentifier, null, false);//鏇存柊redis
+        await base.OnDisconnectedAsync(exception);
+    }
+
+    /// <summary>
+    /// 閫�鍑虹櫥褰�
+    /// </summary>
+    /// <param name="userId"></param>
+    /// <returns></returns>
+    public async Task LoginOut(string userId)
+    {
+        await Clients.User(userId).LoginOut("閫�鍑虹櫥褰�");
+    }
+
+    #region 鏂规硶
+
+    /// <summary>
+    /// 鏇存柊redis
+    /// </summary>
+    /// <param name="userIdentifier">鐢ㄦ埛id</param>
+    /// <param name="token">token</param>
+    /// <param name="ifConnect">鏄惁鏄笂绾�</param>
+    private void UpdateRedis(string userIdentifier, string token, bool ifConnect = true)
+    {
+        var userId = userIdentifier.Split("_")[0];//鍒嗗壊鍙栫涓�涓�
+        if (!string.IsNullOrEmpty(userId))
+        {
+            //鑾峰彇缂撳瓨褰撳墠鐢ㄦ埛鐨則oken淇℃伅鍒楄〃
+            var tokenInfos = _simpleCacheService.Get<List<UserInfo>>("Cache_UserToken");
+            if (tokenInfos != null)
+            {
+                if (ifConnect)
+                {
+                    //鑾峰彇redis涓綋鍓峵oken
+                    var tokenInfo = tokenInfos.Where(it => it.Token == token).FirstOrDefault();
+                    if (tokenInfo != null)
+                    {
+                        tokenInfos.Remove(tokenInfo);//鍒犻櫎鍘熸潵鐨�(涓�涓敤鎴峰彧鑳芥湁涓�涓猼oken)
+                        tokenInfo.Token_ID = userIdentifier;//娣诲姞鍒板鎴风鍒楄〃
+                        tokenInfo.Token = token;//娣诲姞鍒板鎴风鍒楄〃
+                        tokenInfo.UserId = userId.ToInt32(); //娣诲姞鍒板鎴风鍒楄〃
+                        tokenInfos.Add(tokenInfo);
+                        _simpleCacheService.Remove("Cache_UserToken");//鍒犻櫎Redis
+                        _simpleCacheService.AddObject("Cache_UserToken", tokenInfos);//鏇存柊Redis
+                    }
+                    else
+                    {
+                        tokenInfos.Add(new UserInfo() { Token = token, Token_ID = userIdentifier ,UserId = userId.ToInt32() });
+                        _simpleCacheService.AddObject("Cache_UserToken", tokenInfos);//鏇存柊Redis
+                    }
+                }
+                else
+                {
+                    //鑾峰彇褰撳墠瀹㈡埛绔疘D鎵�鍦ㄧ殑token淇℃伅
+                    var tokenInfo = tokenInfos.Where(it => it.Token == token).FirstOrDefault();
+                    if (tokenInfo != null)
+                    {
+                        tokenInfos.Remove(tokenInfo);//鍒犻櫎鍘熸潵鐨�(涓�涓敤鎴峰彧鑳芥湁涓�涓猼oken)
+                        _simpleCacheService.Remove("Cache_UserToken");//鍒犻櫎Redis
+                        _simpleCacheService.AddObject("Cache_UserToken", tokenInfos);//鏇存柊Redis
+                    }
+                }
+            }
+            else
+            {
+                if (ifConnect)
+                {
+                    tokenInfos = new List<UserInfo>
+                    {
+                        new UserInfo() { Token = token, Token_ID = userIdentifier ,UserId = userId.ToInt32()  }
+                    };
+                    _simpleCacheService.AddObject("Cache_UserToken", tokenInfos);//鏇存柊Redis
+                }
+            }
+        }
+    }
+
+    #endregion 鏂规硶
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Provider/UserIdProvider.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Provider/UserIdProvider.cs
new file mode 100644
index 0000000..4df0891
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Provider/UserIdProvider.cs
@@ -0,0 +1,48 @@
+锘�
+
+namespace WIDESEAWCS_SignalR;
+
+/// <summary>
+/// 鐢ㄦ埛ID鎻愪緵鍣�
+/// </summary>
+public class UserIdProvider : IUserIdProvider
+{
+    public string GetUserId(HubConnectionContext connection)
+    {
+        var token = connection.GetHttpContext().Request.Query["access_token"];//鑾峰彇token
+        var userId = JwtHelper.GetUserId(token);//瑙f瀽token
+        if (userId > 0)//濡傛灉涓嶄负绌�
+            return $"{userId}_{CreateLetterAndNumber(5)}";//杩斿洖鐢ㄦ埛ID
+        else
+            return connection.ConnectionId;
+    }
+
+    /// <summary>
+    /// 鐢熸垚闅忔満瀛楁瘝鍜屾暟瀛楅殢鏈烘暟
+    /// </summary>
+    /// <param name="Length">鐢熸垚闀垮害</param>
+    /// <returns></returns>
+    public static string CreateLetterAndNumber(int Length)
+    {
+        char[] array = new char[62]
+        {
+            'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
+            'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
+            'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd',
+            'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
+            'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
+            'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7',
+            '8', '9'
+        };
+        string text = "";
+        int maxValue = array.Length;
+        Random random = new Random((int)(~DateTime.Now.Ticks));
+        for (int i = 0; i < Length; i++)
+        {
+            int num = random.Next(0, maxValue);
+            text += array[num];
+        }
+
+        return text;
+    }
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/INoticeService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/INoticeService.cs
new file mode 100644
index 0000000..5b969f8
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/INoticeService.cs
@@ -0,0 +1,54 @@
+锘�
+
+namespace WIDESEAWCS_SignalR;
+
+/// <summary>
+/// 閫氱煡鏈嶅姟
+/// </summary>
+public interface INoticeService : ISingleton
+{
+    /// <summary>
+    /// 閫氱煡鐢ㄦ埛涓嬬嚎
+    /// </summary>
+    /// <param name="userId">鐢ㄦ埛ID</param>
+    /// <param name="clientIds">clientId鍒楄〃</param>
+    /// <param name="message">閫氱煡鍐呭</param>
+    /// <returns></returns>
+    Task UserLoginOut(string userId, List<string> clientIds, string message);
+
+    /// <summary>
+    /// 閫氱煡鐢ㄦ埛淇敼瀵嗙爜
+    /// </summary>
+    /// <param name="userId">鐢ㄦ埛ID</param>
+    /// <param name="clientIds">clientId鍒楄〃</param>
+    /// <param name="message">閫氱煡鍐呭</param>
+    /// <returns></returns>
+    Task UpdatePassWord(string userId, List<string> clientIds, string message);
+
+    /// <summary>
+    /// 鏀跺埌鏂扮殑娑堟伅
+    /// </summary>
+    /// <param name="userIds">鐢ㄦ埛Id鍒楄〃</param>
+    /// <param name="clientIds">clientId鍒楄〃</param>
+    /// <param name="message"></param>
+    /// <returns></returns>
+    Task NewMesage(List<string> userIds, List<string> clientIds, string message);
+
+    /// <summary>
+    /// 鍫嗗灈鏈烘暟鎹�
+    /// </summary>
+    /// <param name="userId">鐢ㄦ埛ID</param>
+    /// <param name="clientIds">clientId鍒楄〃</param>
+    /// <param name="message">閫氱煡鍐呭</param>
+    /// <returns></returns>
+    Task StackerData(int? userId, List<string> clientIds, object message);
+
+    /// <summary>
+    /// 绾夸綋鏁版嵁
+    /// </summary>
+    /// <param name="userId">鐢ㄦ埛ID</param>
+    /// <param name="clientIds">clientId鍒楄〃</param>
+    /// <param name="message">閫氱煡鍐呭</param>
+    /// <returns></returns>
+    Task LineData(int? userId, List<string> clientIds, object message);
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/SignalrNoticeService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/SignalrNoticeService.cs
new file mode 100644
index 0000000..3bbb94f
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/SignalrNoticeService.cs
@@ -0,0 +1,63 @@
+锘�
+namespace WIDESEAWCS_SignalR;
+
+/// <summary>
+/// <inheritdoc cref="INoticeService"/>
+/// </summary>
+[Injection(Named = "signalr")]
+public class SignalrNoticeService : INoticeService
+{
+    public SignalrNoticeService()
+    {
+    }
+
+    /// <inheritdoc/>
+    public async Task UpdatePassWord(string userId, List<string> clientIds, string message)
+    {
+        //鍙戦�佹秷鎭粰鐢ㄦ埛
+        await GetHubContext().Clients.Users(clientIds).NewMessage(message);
+    }
+
+    /// <inheritdoc/>
+    public async Task NewMesage(List<string> userIds, List<string> clientIds, string message)
+    {
+        //鍙戦�佹秷鎭粰鐢ㄦ埛
+        await GetHubContext().Clients.Users(clientIds).NewMessage(message);
+    }
+
+    /// <inheritdoc/>
+    public async Task UserLoginOut(string userId, List<string> clientIds, string message)
+    {
+        //鍙戦�佹秷鎭粰鐢ㄦ埛
+        await GetHubContext().Clients.Users(clientIds).LoginOut(message);
+    }
+
+    #region MyRegion
+
+    /// <summary>
+    /// 鑾峰彇hubContext
+    /// </summary>
+    /// <returns></returns>
+    private IHubContext<SimpleHub, ISimpleHub> GetHubContext()
+    {
+        //瑙f瀽鏈嶅姟
+        var service = App.GetService<IHubContext<SimpleHub, ISimpleHub>>();
+        return service;
+    }
+
+    /// <inheritdoc/>
+    public async Task StackerData(int? userId, List<string> clientIds, object message)
+    {
+        //鍙戦�佹秷鎭粰鐢ㄦ埛
+        await GetHubContext().Clients.Users(clientIds).StackerData(message);
+    }
+
+    /// <inheritdoc/>
+    public async Task LineData(int? userId, List<string> clientIds, object message)
+    {
+        //鍙戦�佹秷鎭粰鐢ㄦ埛
+        await GetHubContext().Clients.Users(clientIds).LineData(message);
+    }
+
+    #endregion MyRegion
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/WIDESEAWCS_SignalR.csproj b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/WIDESEAWCS_SignalR.csproj
new file mode 100644
index 0000000..9b75270
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/WIDESEAWCS_SignalR.csproj
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_Core\WIDESEAWCS_Core.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.BuildWithSkipAnalyzers b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.BuildWithSkipAnalyzers
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.BuildWithSkipAnalyzers
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/WIDESEAWCS_SignalR.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/WIDESEAWCS_SignalR.csproj.nuget.g.targets
new file mode 100644
index 0000000..42c590f
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/WIDESEAWCS_SignalR.csproj.nuget.g.targets
@@ -0,0 +1,22 @@
+锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
+    <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/WIDESEAWCS_TaskInfo_HtyRepository.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/WIDESEAWCS_TaskInfo_HtyRepository.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/WIDESEAWCS_TaskInfo_HtyRepository.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/WIDESEAWCS_TaskInfo_HtyRepository.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/WIDESEAWCS_TaskInfo_HtyService.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/WIDESEAWCS_TaskInfo_HtyService.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/WIDESEAWCS_TaskInfo_HtyService.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/WIDESEAWCS_TaskInfo_HtyService.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index 7aad880..1a90a5c 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -10,7 +10,9 @@
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Caches;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
 using WIDESEAWCS_DTO.MOM;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IProcessRepository;
@@ -22,8 +24,10 @@
 using WIDESEAWCS_QuartzJob.DeviceBase;
 using WIDESEAWCS_QuartzJob.DTO;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_SignalR;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 using static System.Collections.Specialized.BitVector32;
+using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
 namespace WIDESEAWCS_Tasks
 {
@@ -39,8 +43,10 @@
         private readonly IMapper _mapper;
         private readonly IDt_StationManagerService _stationManagerService;
         private readonly IDt_StationManagerRepository _stationManagerRepository;
+        private readonly ICacheService _cacheService;
+        private readonly INoticeService _noticeService;
 
-        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository)
+        public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, ICacheService cacheService, INoticeService noticeService)
         {
             _taskService = taskService;
             _taskExecuteDetailService = taskExecuteDetailService;
@@ -51,6 +57,8 @@
             _sys_ConfigService = sys_ConfigService;
             _stationManagerService = stationManagerService;
             _stationManagerRepository = stationManagerRepository;
+            _cacheService = cacheService;
+            _noticeService = noticeService;
         }
 
         public async Task Execute(IJobExecutionContext context)
@@ -165,6 +173,26 @@
                         }
                     }
                 }
+
+
+                #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
+
+                var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
+                if (tokenInfos == null || !tokenInfos.Any())
+                {
+                    throw new Exception(conveyorLine.DeviceName + "缂撳瓨涓湭鎵惧埌Token缂撳瓨");
+                }
+                var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
+                var userIds = tokenInfos?.Select(x => x.UserId).ToList();
+
+                object obj = new
+                {
+                    command,
+                    commandWrite
+                };
+                _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj });
+
+                #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
             }
         }
 
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs
index 438e581..9fd5456 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs
@@ -32,7 +32,9 @@
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Caches;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_ISystemServices;
 using WIDESEAWCS_ITaskInfoRepository;
@@ -42,7 +44,9 @@
 using WIDESEAWCS_QuartzJob.DeviceBase;
 using WIDESEAWCS_QuartzJob.DTO;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_SignalR;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
+using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
 namespace WIDESEAWCS_Tasks
 {
@@ -56,8 +60,10 @@
         private readonly IMapper _mapper;
         private readonly IDt_StationManagerService _stationManagerService;
         private readonly ISys_ConfigService _sys_ConfigService;
+        private readonly ICacheService _cacheService;
+        private readonly INoticeService _noticeService;
 
-        public CommonConveyorLine_AfterJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService)
+        public CommonConveyorLine_AfterJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService)
         {
             _taskService = taskService;
             _taskExecuteDetailService = taskExecuteDetailService;
@@ -66,6 +72,8 @@
             _taskRepository = taskRepository;
             _stationManagerService = stationManagerService;
             _sys_ConfigService = sys_ConfigService;
+            _cacheService = cacheService;
+            _noticeService = noticeService;
         }
 
         public async Task Execute(IJobExecutionContext context)
@@ -93,6 +101,24 @@
                         {
                             await GetEmptyTrayAsync(station);
                         }
+
+                        #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
+
+                        var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
+                        if (tokenInfos == null || !tokenInfos.Any())
+                        {
+                            throw new Exception(conveyorLine.DeviceName + "缂撳瓨涓湭鎵惧埌Token缂撳瓨");
+                        }
+                        var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
+                        var userIds = tokenInfos?.Select(x => x.UserId).ToList();
+
+                        object obj = new
+                        {
+                            commandAfter = command,
+                        };
+                        _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj });
+
+                        #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
                     }
 
                     #region 璺敱鏂瑰紡
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs
index b660fb6..616a63c 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs
@@ -33,7 +33,9 @@
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Caches;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
 using WIDESEAWCS_DTO.MOM;
 using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IProcessRepository;
@@ -46,7 +48,9 @@
 using WIDESEAWCS_QuartzJob.DeviceBase;
 using WIDESEAWCS_QuartzJob.DTO;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_SignalR;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
+using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
 
 namespace WIDESEAWCS_Tasks
 {
@@ -61,8 +65,10 @@
         private readonly ISys_ConfigService _sys_ConfigService;
         private readonly IMapper _mapper;
         private readonly IDt_StationManagerRepository _stationManagerRepository;
+        private readonly ICacheService _cacheService;
+        private readonly INoticeService _noticeService;
 
-        public CommonConveyorLine_GWJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository)
+        public CommonConveyorLine_GWJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository, ICacheService cacheService, INoticeService noticeService)
         {
             _taskService = taskService;
             _taskExecuteDetailService = taskExecuteDetailService;
@@ -72,6 +78,8 @@
             _platFormRepository = platFormRepository;
             _sys_ConfigService = sys_ConfigService;
             _stationManagerRepository = stationManagerRepository;
+            _cacheService = cacheService;
+            _noticeService = noticeService;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -157,6 +165,24 @@
                             }
                         }
 
+                        #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
+
+                        var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
+                        if (tokenInfos == null || !tokenInfos.Any())
+                        {
+                            throw new Exception(conveyorLine.DeviceName + "缂撳瓨涓湭鎵惧埌Token缂撳瓨");
+                        }
+                        var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
+                        var userIds = tokenInfos?.Select(x => x.UserId).ToList();
+
+                        object obj = new
+                        {
+                            commandAfter = command,
+                        };
+                        _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj });
+
+                        #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
+
                     }
                     #endregion
 
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index f350bdb..a2a6076 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -4,7 +4,9 @@
 using Quartz;
 using System.Diagnostics.CodeAnalysis;
 using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core.Caches;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
 using WIDESEAWCS_DTO.MOM;
 using WIDESEAWCS_IProcessRepository;
 using WIDESEAWCS_ITaskInfoRepository;
@@ -16,6 +18,7 @@
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
+using WIDESEAWCS_SignalR;
 using WIDESEAWCS_Tasks.StackerCraneJob;
 
 namespace WIDESEAWCS_Tasks
@@ -28,14 +31,18 @@
         private readonly ITaskRepository _taskRepository;
         private readonly IRouterService _routerService;
         private readonly IProcessRepository _processRepository;
+        private readonly ICacheService _cacheService;
+        private readonly INoticeService _noticeService;
 
-        public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository)
+        public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository, ICacheService cacheService, INoticeService noticeService)
         {
             _taskService = taskService;
             _taskExecuteDetailService = taskExecuteDetailService;
             _taskRepository = taskRepository;
             _routerService = routerService;
             _processRepository = processRepository;
+            _cacheService = cacheService;
+            _noticeService = noticeService;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -78,11 +85,37 @@
                             }
                         }
                     }
+
+                    #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
+
+                    var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
+                    if (tokenInfos == null || !tokenInfos.Any())
+                    {
+                        throw new Exception(commonStackerCrane.DeviceName + "缂撳瓨涓湭鎵惧埌Token缂撳瓨");
+                    }
+                    var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
+                    var userIds = tokenInfos?.Select(x => x.UserId).ToList();
+
+                    object obj = new
+                    {
+                        commonStackerCrane.StackerCraneStatusDes,
+                        commonStackerCrane.StackerCraneAutoStatusDes,
+                        commonStackerCrane.StackerCraneWorkStatusDes,
+                        commonStackerCrane.DeviceCode,
+                        commonStackerCrane.DeviceName,
+                        commonStackerCrane.CurrentTaskNum,
+                        commonStackerCrane.LastTaskNum,
+                    };
+                    _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { commonStackerCrane.DeviceName, data = obj });
+
+                    #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
+
                 }
             }
             catch (Exception ex)
             {
                 WriteError("CommonConveyorLineJob", "test", ex);
+                ConsoleHelper.WriteErrorLine($"{ex.Message}");
                 //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString());
             }
             //WriteDebug("CommonConveyorLineJob", "test");
@@ -117,6 +150,8 @@
         private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane)
         {
             Dt_Task task;
+            var taskRun = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting || x.TaskState == (int)TaskInStatusEnum.SC_InExecuting);
+            if (taskRun != null) { return null; }
             if (commonStackerCrane.LastTaskType == null)
             {
                 task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
@@ -192,7 +227,7 @@
                     if (device != null)
                     {
                         CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)device;
-                        if (conveyorLine.IsOccupied(task.NextAddress))//鍑哄簱绔欏彴鏈鍗犵敤
+                        if (conveyorLine.IsOccupied(task.TargetAddress))//鍑哄簱绔欏彴鏈鍗犵敤
                         {
                             return task;
                         }
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj
index db6d91e..e08fa4e 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj
@@ -9,6 +9,7 @@
 	<ItemGroup>
 		<ProjectReference Include="..\WIDESEAWCS_ProcessRepository\WIDESEAWCS_ProcessRepository.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_QuartzJob\WIDESEAWCS_QuartzJob.csproj" />
+		<ProjectReference Include="..\WIDESEAWCS_SignalR\WIDESEAWCS_SignalR.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_SystemServices\WIDESEAWCS_SystemServices.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_TaskInfoService\WIDESEAWCS_TaskInfoService.csproj" />
 	</ItemGroup>
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.g.targets b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.g.targets
index 49f8987..42c590f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.g.targets
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.g.targets
@@ -1,6 +1,22 @@
 锘�<?xml version="1.0" encoding="utf-8" standalone="no"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
+    <Import Project="$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets" Condition="Exists('$(NuGetPackageRoot)system.text.encodings.web\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Encodings.Web.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets" Condition="Exists('$(NuGetPackageRoot)system.io.pipelines\9.0.0\buildTransitive\netcoreapp2.0\System.IO.Pipelines.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.bcl.asyncinterfaces\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Bcl.AsyncInterfaces.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\9.0.0\buildTransitive\netcoreapp2.0\System.Text.Json.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets" Condition="Exists('$(NuGetPackageRoot)system.codedom\9.0.0\buildTransitive\netcoreapp2.0\System.CodeDom.targets')" />
+    <Import Project="$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets" Condition="Exists('$(NuGetPackageRoot)system.management\9.0.0\buildTransitive\netcoreapp2.0\System.Management.targets')" />
     <Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.6\buildTransitive\net6.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers\3.3.4\buildTransitive\Microsoft.CodeAnalysis.Analyzers.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.primitives\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Primitives.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\6.0.4\buildTransitive\netcoreapp3.1\Microsoft.Extensions.Logging.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.filesystemglobbing\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileSystemGlobbing.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.fileproviders.physical\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.FileProviders.Physical.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.abstractions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Abstractions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.fileextensions\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.FileExtensions.targets')" />
+    <Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.json\9.0.0\buildTransitive\netcoreapp2.0\Microsoft.Extensions.Configuration.Json.targets')" />
   </ImportGroup>
 </Project>
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs
index 9db93b5..aad02cc 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/ManageEnum.cs
@@ -71,6 +71,12 @@
         /// </summary>
         [Description("鏃犺揣绂佺敤")]
         FreeDisable = 4,
+
+        /// <summary>
+        /// 棰勫垎閰�
+        /// </summary>
+        [Description("棰勫垎閰�")]
+        Distribute = 5,
     }
 
     public enum LocationState
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 058f3e0..37693a9 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -599,7 +599,7 @@
                     PalletCode = input.PalletCode,
                     SourceAddress = stationManager.stationLocation,
                     TaskState = (int)TaskInStatusEnum.Line_InFinish,
-                    TaskType = (int)TaskOutboundTypeEnum.OutNG,
+                    TaskType = (int)TaskOutboundTypeEnum.InToOut,
                     TaskNum = await BaseDal.GetTaskNo(),
                     Creater = "Systeam"
                 };
@@ -712,7 +712,7 @@
                     PalletCode = input.PalletCode,
                     SourceAddress = stationManager.stationLocation,
                     TaskState = (int)TaskInStatusEnum.Line_InFinish,
-                    TaskType = (int)TaskOutboundTypeEnum.OutNG,
+                    TaskType = (int)TaskOutboundTypeEnum.InToOut,
                     TaskNum = await BaseDal.GetTaskNo(),
                     Creater = "Systeam"
                 };
@@ -763,8 +763,9 @@
             TaskNum = await BaseDal.GetTaskNo(),
             Creater = "Systeam"
         };
-
+        ConsoleHelper.WriteSuccessLine($"淇敼鍓嶏細" + locationInfo.LocationStatus.ToString());
         locationInfo.LocationStatus = (int)LocationEnum.FreeDisable;
+        ConsoleHelper.WriteSuccessLine($"淇敼鍚庯細" + locationInfo.LocationStatus.ToString());
         await UpdateLocationAsync(locationInfo);
 
         return task;
@@ -789,7 +790,7 @@
             }
             else
             {
-                locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.FreeDisable && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1);
+                locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Distribute && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1);
             }
 
             if (locations == null)
@@ -994,24 +995,28 @@
 
                 var stockInfo = await QueryStockInfoForEmptyTrayAsync("CWSC1", new List<string>());
 
-
-                var task = CreateTask(stockInfo, taskDTO.Position, (int)TaskOutboundTypeEnum.OutTray);
-
-                // 鍒涘缓浠诲姟DTO
-                WMSTaskDTO wmsTask = CreateTaskDTO(task);
-
-                // 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
-                stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
-                location.LocationStatus = (int)LocationEnum.FreeDisable;
-                await _unitOfWorkManage.UseTranAsync(async () =>
+                if (stockInfo != null)
                 {
-                    await BaseDal.AddDataAsync(task);
-                    await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo);
-                    await _locationRepository.UpdateDataAsync(location);
-                });
+                    var task = CreateTask(stockInfo, taskDTO.Position, (int)TaskOutboundTypeEnum.OutTray);
 
-                // 杩斿洖鎴愬姛鍝嶅簲
-                return content.OK(data: wmsTask);
+                    // 鍒涘缓浠诲姟DTO
+                    WMSTaskDTO wmsTask = CreateTaskDTO(task);
+
+                    // 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
+                    stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
+                    location.LocationStatus = (int)LocationEnum.Distribute;
+                    await _unitOfWorkManage.UseTranAsync(async () =>
+                    {
+                        await BaseDal.AddDataAsync(task);
+                        await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo);
+                        await _locationRepository.UpdateDataAsync(location);
+                    });
+
+                    // 杩斿洖鎴愬姛鍝嶅簲
+                    return content.OK(data: wmsTask);
+                }
+                else
+                    content.Error("甯告俯绌烘墭鐩樻暟閲忎笉瓒�");
             }
         }
         catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WCS-\350\276\223\351\200\201\344\272\244\344\272\222\350\241\2502024-3-26.V1.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WCS-\350\276\223\351\200\201\344\272\244\344\272\222\350\241\2502024-3-26.V1.xlsx"
new file mode 100644
index 0000000..ffda19c
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/WCS-\350\276\223\351\200\201\344\272\244\344\272\222\350\241\2502024-3-26.V1.xlsx"
Binary files differ

--
Gitblit v1.9.3