1
hutongqing
2025-01-02 8c6fd742db249ad4cc819cf041eb98d880a3ef73
1
已删除4个文件
已修改74个文件
已添加5个文件
已重命名1个文件
3926 ■■■■ 文件已修改
WIDESEAWCS_Client/src/views/quartzJob/deviceInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Client/src/views/system/Sys_Log.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/47f1c681-b60a-42e6-a1ee-65b795a138fe.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/93b5b3a2-f761-4471-a6fe-bc8918d0eeca.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8b56c96-5c9f-4b7c-acab-2d88b650b051.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba667f09-0dbf-4db8-8382-9e90210cc581.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/be4c595e-f3ce-4af1-87b6-a95f79589f51.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 2445 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/CommunicationException.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/IRepository.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs 175 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/DB/Models/IBaseHistoryEntity.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/OperateTypeEnum.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/Enum/ConveyorLineStatus.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/CustomException/QuartzJobException.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceInfoDTO.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProDTO.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProtocolDetailDTO.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/CustomException/StackerCraneException.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DataLengthAttribute.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceStatus.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceEnum/DeviceStatus.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/JobSetup.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobAutofacModuleRegister.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobDataTableHostedService.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobHostedService.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/SchedulerCenterServer.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceInfoRepository.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolDetailRepository.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolRepository.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DispatchInfoRepository.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceInfoRepository.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolDetailRepository.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolRepository.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDispatchInfoRepository.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolDetailService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceInfoService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolDetailService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/StackerCraneTaskCompletedEventArgs.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Client/src/views/quartzJob/deviceInfo.vue
@@ -97,7 +97,7 @@
    });
    const searchFormOptions = ref([
      [
        { title: "设备编号", field: "deviceCode" },
        { title: "设备编号", field: "deviceCode",type: "like" },
        {
          title: "设备类型",
          field: "deviceType",
WIDESEAWCS_Client/src/views/system/Sys_Log.vue
@@ -44,9 +44,9 @@
    });
    const searchFormOptions = ref([
      [
        { title: "请求地址", field: "url", type: "text" },
        { title: "用户IP", field: "userIP", type: "text" },
        { title: "服务器IP", field: "serviceIP", type: "text" },
        { title: "请求地址", field: "url", type: "like" },
        { title: "用户IP", field: "userIP", type: "like" },
        { title: "服务器IP", field: "serviceIP", type: "like" },
      ],
      [
        { title: "开始时间", field: "beginDate", type: "datetime" },
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/47f1c681-b60a-42e6-a1ee-65b795a138fe.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/93b5b3a2-f761-4471-a6fe-bc8918d0eeca.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8b56c96-5c9f-4b7c-acab-2d88b650b051.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba667f09-0dbf-4db8-8382-9e90210cc581.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/be4c595e-f3ce-4af1-87b6-a95f79589f51.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,12 +3,360 @@
  "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\cacheaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\cacheaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\communicationexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\communicationexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\stackercranetaskcompletedeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\stackercranetaskcompletedeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\enum\\stackercranestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\enum\\stackercranestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\idispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\idispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\ideviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\ideviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\ideviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\ideviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\ideviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\ideviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\seed\\quartzjobcreatedatatabel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\seed\\quartzjobcreatedatatabel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\routerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\routerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\irouterrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\irouterrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\idispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\idispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\ideviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\ideviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\ideviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\ideviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\ideviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\ideviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\dispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\dispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\deviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\deviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\deviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\deviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\deviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\deviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\ischedulercenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\ischedulercenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceprotocoldetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceprotocoldetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\routersadddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\routersadddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\dispatchstatusdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\dispatchstatusdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceprotocoldetaildto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceprotocoldetaildto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\deviceenum\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\deviceenum\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\datalengthattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\datalengthattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\customexception\\quartzjobexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\customexception\\quartzjobexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\enum\\conveyorlinestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\enum\\conveyorlinestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\httphelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\httphelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\db\\models\\ibasehistoryentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\db\\models\\ibasehistoryentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\enums\\operatetypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\enums\\operatetypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\md5helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\md5helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\loghelper\\quartzlogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\loghelper\\quartzlogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\wideseawcs_model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
@@ -23,14 +371,6 @@
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\autofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\vuedictionarydto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\vuedictionarydto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
@@ -39,40 +379,8 @@
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\utilities\\entityproperties.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -83,104 +391,24 @@
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\httpcontextuser\\aspnetuser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\omron\\omronethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\omron\\omronethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\inovance\\inovancetcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\inovance\\inovancetcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\seed\\dbseed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\seed\\dbseed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\quartzjob\\schedulercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\schedulercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\ischedulercenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\ischedulercenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -193,10 +421,6 @@
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\filter\\automapperconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\automapperconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_menuservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -251,28 +475,12 @@
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\dispatchinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\loghelper\\quartzlogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\loghelper\\quartzlogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\userpermissions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\userpermissions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\actiondto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\actiondto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -283,52 +491,8 @@
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\shuttlecarjob\\shuttlecarjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceprotocoldetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceprotocoldetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\db\\models\\baseentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\db\\models\\baseentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\extensions\\initializationhostservicesetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -337,30 +501,6 @@
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\stackercranetaskcompletedeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\stackercranetaskcompletedeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\seed\\quartzjobcreatedatatabel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\seed\\quartzjobcreatedatatabel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -370,7 +510,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 12,
          "SelectedChildIndex": 13,
          "Children": [
            {
              "$type": "Bookmark",
@@ -394,7 +534,1132 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "CacheAOP.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
              "ViewState": "AgIAAJQAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T07:06:21.834Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "CommunicationException.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CommunicationException.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CommunicationException.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CommunicationException.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\CommunicationException.cs",
              "ViewState": "AgIAAKAAAAAAAAAAAAAgwKQAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T07:05:50.559Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "AllenBrandlyEtherNetCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYDAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:35:39.773Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "SiemensS7Communicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAOoCAABRAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:52:46.701Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "WIDESEAWCS_Core.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "RelativeToolTip": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-12-27T02:26:53.811Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "WIDESEAWCS_Communicator.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-11-13T02:53:56.497Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "WIDESEAWCS_QuartzJob.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-12-23T15:03:57.823Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "Storage.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Storage.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Storage.cs",
              "ViewState": "AgIAACUAAAAAAAAAAAAAwEAAAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T03:42:32.674Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "JobBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\JobBase.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\JobBase.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:31:45.652Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "StackerCraneTaskCompletedEventArgs.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACsAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:15:38.217Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "IStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "ViewState": "AgIAADoAAAAAAAAAAAAUwDEAAAANAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:26:43.303Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "SpeStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "ViewState": "AgIAAO4AAAAAAAAAAAAvwAgBAAA0AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:18:03.553Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "SiemensDBDataType.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ViewState": "AgIAAE0AAAAAAAAAAADwvx8AAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:52:46.064Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "CommonStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ViewState": "AgIAAL8BAAAAAAAAAAAAAMYBAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:16:12.855Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "IDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "ViewState": "AgIAAC4AAAAAAAAAAAAewD0AAAATAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:11:35.273Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "StackerCraneStatus.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
              "ViewState": "AgIAAHUAAAAAAAAAAAAIwF0AAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:45:41.671Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "ShuttleCar.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ViewState": "AgIAANQAAAAAAAAAAAAqwOgAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:30:13.299Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "IShuttleCar.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ViewState": "AgIAAA0AAAAAAAAAAAAjwBcAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:29:59.091Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "OtherDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ViewState": "AgIAAEEAAAAAAAAAAAAQwFYAAAAxAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:36:32.34Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "RouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ViewState": "AgIAAAwBAAAAAAAAAADgvxkAAAATAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:40.549Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "DispatchInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ViewState": "AgIAADEAAAAAAAAAAAAAwCsAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:37.692Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "IRouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "ViewState": "AgIAAA8AAAAAAAAAAAAAACoAAAApAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-21T02:50:10.906Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "IDispatchInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAATAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:41:11.358Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 24,
              "Title": "IDeviceProtocolService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAATAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:40:52.63Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 25,
              "Title": "IDeviceProtocolDetailService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:40:33.235Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 26,
              "Title": "IDeviceInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:40:18.864Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 30,
              "Title": "QuartzJobCreateDataTabel.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "ViewState": "AgIAAEYAAAAAAAAAAAAAwCMAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:35:29.846Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 31,
              "Title": "RouterRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-23T15:08:49.174Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 32,
              "Title": "IRouterRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-23T15:08:47.916Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "DeviceInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ViewState": "AgIAADEAAAAAAAAAAAAAwDUAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:02:36.16Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "Title": "DeviceProtocolDetailService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "ViewState": "AgIAACYAAAAAAAAAAADwvysAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:33.598Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 27,
              "Title": "DeviceProtocolService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "ViewState": "AgIAAEsAAAAAAAAAAAAIwGEAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:34.541Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 33,
              "Title": "IDispatchInfoRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAATAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:37:50.752Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 34,
              "Title": "IDeviceProtocolRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAATAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:37:40.611Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 35,
              "Title": "IDeviceProtocolDetailRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:37:18.395Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 36,
              "Title": "IDeviceInfoRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAKAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:37:04.287Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 37,
              "Title": "DispatchInfoRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:36:50.076Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 38,
              "Title": "DeviceProtocolRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:36:13.489Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 39,
              "Title": "DeviceProtocolDetailRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:35:55.738Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 40,
              "Title": "DeviceInfoRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:35:40.413Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 48,
              "Title": "JobSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "ViewState": "AgIAAC4AAAAAAAAAAAAAwCQAAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:30:07.656Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 47,
              "Title": "QuartzJobAutofacModuleRegister.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "ViewState": "AgIAABsAAAAAAAAAAAAAACcAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:32:40.712Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 46,
              "Title": "QuartzJobDataTableHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "ViewState": "AgIAADcAAAAAAAAAAAAAwFMAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:33:24.489Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 45,
              "Title": "QuartzJobHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ViewState": "AgIAAC8AAAAAAAAAAADwv0kAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:34:48.326Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 44,
              "Title": "ISchedulerCenter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "ViewState": "AgIAABsAAAAAAAAAAAAAAFEAAAA3AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:27:27.505Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 43,
              "Title": "JobFactory.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ViewState": "AgIAACsAAAAAAAAAAAAAwEQAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:29:37.04Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 42,
              "Title": "QuartzNetExtension.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "ViewState": "AgIAAB0AAAAAAAAAAADwvxkAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-15T01:36:48.189Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 41,
              "Title": "SchedulerCenterServer.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "ViewState": "AgIAAFQBAAAAAAAAAAAiwH0AAABBAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-19T02:46:45.891Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 49,
              "Title": "Dt_Router.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "ViewState": "AgIAAFkAAAAAAAAAAAAkwA0AAAAOAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:46.049Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 50,
              "Title": "Dt_DispatchInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ViewState": "AgIAAFEAAAAAAAAAAAAYwDkAAAAeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:35.521Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 51,
              "Title": "Dt_DeviceProtocolDetail.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "ViewState": "AgIAAEMAAAAAAAAAAAAUwCcAAABSAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:24.357Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 52,
              "Title": "Dt_DeviceProtocol.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ViewState": "AgIAAGMAAAAAAAAAAAAiwGAAAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:11.706Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 53,
              "Title": "Dt_DeviceInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ViewState": "AgIAAGMAAAAAAAAAAAAiwCsAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:36:57.223Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 54,
              "Title": "RoutersAddDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:31:26.858Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 55,
              "Title": "DispatchStatusDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
              "ViewState": "AgIAACIAAAAAAAAAAAAAwBkAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:31:19.344Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 57,
              "Title": "DeviceProtocolDetailDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
              "ViewState": "AgIAACIAAAAAAAAAAAAAwBoAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:30:44.746Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 60,
              "Title": "DeviceStatus.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:29:47.85Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 61,
              "Title": "DeviceStatus.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABoAAAAOAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:29:34.161Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 63,
              "Title": "DataLengthAttribute.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACgAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:27:56.645Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 64,
              "Title": "QuartzJobException.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
              "ViewState": "AgIAAGcAAAAAAAAAAAAgwI4AAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:26:43.504Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 65,
              "Title": "CommonConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ViewState": "AgIAAAQBAAAAAAAAAAAmwBQBAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:19:57.802Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 59,
              "Title": "DeviceInfoDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T07:49:25.651Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 56,
              "Title": "DispatchInfoDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "ViewState": "AgIAAB0AAAAAAAAAAAAwwDEAAAAqAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-20T01:10:50.115Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 66,
              "Title": "ConveyorLineStatus.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-01-02T06:25:34.779Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 58,
              "Title": "DeviceProDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "ViewState": "AgIAAE4AAAAAAAAAAAAiwCUAAAATAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:25:37.029Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 62,
              "Title": "DeviceCommand.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
              "ViewState": "AgIAAO4AAAAAAAAAAAAUwAgBAAALAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-17T07:25:07.393Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 67,
              "Title": "IOtherDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "ViewState": "AgIAABkAAAAAAAAAAAAjwCMAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:36:30.442Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 69,
              "Title": "WIDESEAWCS_Communicator",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2025-01-02T06:15:50.428Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 70,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAA8AAAAAAAAAAAAAABoAAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2024-11-14T07:21:55.699Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 82,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAHYBAADEAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-05T05:59:47.833Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 68,
              "Title": "IConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "ViewState": "AgIAABsAAAAAAAAAAAAAAEYAAAAvAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:29:28.34Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 83,
              "Title": "Sys_Log.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "ViewState": "AgIAAA4AAAAAAAAAAADwvzEAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-12T02:48:02.899Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 85,
              "Title": "QuartzLogger.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAdAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T03:42:39.372Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 76,
              "Title": "ServiceFunFilter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
              "ViewState": "AgIAALEAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-23T13:42:50.935Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 73,
              "Title": "LogAOP.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
              "ViewState": "AgIAACEAAAAAAAAAAAAywAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-28T16:42:00.295Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 72,
              "Title": "SqlSugarAop.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
              "ViewState": "AgIAAEQAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-28T16:42:03.922Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 71,
              "Title": "SqlsugarSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
              "ViewState": "AgIAABcAAAAAAAAAAADwvzsAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-28T16:42:12.496Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 79,
              "Title": "RepositoryBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "ViewState": "AgIAAEwDAAAAAAAAAAAgwFwDAABcAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-19T07:25:55.034Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 75,
              "Title": "HttpHelper.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
              "ViewState": "AgIAAFgAAAAAAAAAAAAQwIAAAAAZAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-20T07:57:08.601Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 74,
              "Title": "Logger.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAIIAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-12T02:46:50.608Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 77,
              "Title": "ServiceBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAADwAAAAgAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-19T07:26:59.037Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 81,
              "Title": "OperateTypeEnum.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-23T07:34:33.795Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 78,
              "Title": "IBaseHistoryEntity.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAFAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-23T07:35:55.159Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 80,
              "Title": "IRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
              "ViewState": "AgIAAIQBAAAAAAAAAAASwJsBAABPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-23T07:35:12.07Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 84,
              "Title": "MD5Helper.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-21T02:26:47.894Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 87,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAD0AAABYAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T06:24:51.147Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 86,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ViewState": "AgIAAAkAAAAAAAAAAAAuwH8AAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-20T02:13:26.923Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 88,
              "Title": "CustomProfile.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAArAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-15T07:25:51.567Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 89,
              "Title": "WIDESEAWCS_Model.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
@@ -407,94 +1672,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "Sys_Log.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "ViewState": "AgIAADgAAAAAAAAAAAAcwFMAAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-12T02:48:02.899Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "Logger.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "ViewState": "AgIAAIIAAAAAAAAAAAAUwJEAAABlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-12T02:46:50.608Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "WIDESEAWCS_Communicator.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-11-13T02:53:56.497Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "CommonConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEYAAAAsAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:20:49.51Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAD0AAABYAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T06:24:51.147Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "Dt_DispatchInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ViewState": "AgIAACMAAAAAAAAAAADwvzkAAAAeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:35.521Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "DispatchInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAArwDwAAAAyAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:37.692Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 91,
              "Title": "AutofacModuleRegister.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
@@ -506,7 +1684,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 90,
              "Title": "ApiLogMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
@@ -518,31 +1696,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "RouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ViewState": "AgIAABYAAAAAAAAAAAAAwAsAAAAmAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:40.549Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "JobFactory.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ViewState": "AgIAACQAAAAAAAAAAAAEwD0AAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:29:37.04Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "DocumentIndex": 93,
              "Title": "Sys_DictionaryService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
@@ -554,7 +1708,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "DocumentIndex": 92,
              "Title": "VueDictionaryDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
@@ -566,91 +1720,19 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 25,
              "Title": "OmronEtherNetCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "ViewState": "AgIAAEsBAAAAAAAAAAAAAEsBAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:35:17.529Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "QuartzJobHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:34:48.326Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "AllenBrandlyEtherNetCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "ViewState": "AgIAAG4BAAAAAAAAAAArwKUCAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:35:39.773Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "DocumentIndex": 94,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAACIAAAAAAAAAAAAAAEAAAAA4AAAAAAAAAA==",
              "ViewState": "AgIAAB8AAAAAAAAAAABIwEAAAAA4AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T03:40:59.936Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "BaseCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAFIAAAA6AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T06:53:45.876Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "SiemensS7Communicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ViewState": "AgIAAFkAAAAAAAAAAADwv2wBAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:52:46.701Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 27,
              "Title": "InovanceTcpCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "ViewState": "AgIAAEkAAAAAAAAAAAAAAEkAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:10:31.214Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "DocumentIndex": 95,
              "Title": "EntityProperties.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
@@ -662,31 +1744,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-05T05:59:47.833Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 26,
              "Title": "ModbusTcpCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ViewState": "AgIAADkBAAAAAAAAAAAAADkBAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:35:23.258Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "DocumentIndex": 96,
              "Title": "AspNetUser.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
@@ -698,43 +1756,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "OtherDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ViewState": "AgIAAIwAAAAAAAAAAAAUwJEAAAAcAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:36:32.34Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "CommonStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ViewState": "AgIAAMsBAAAAAAAAAAAswHQBAAAaAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:16:12.855Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 24,
              "Title": "SiemensDBDataType.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:52:46.064Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 31,
              "DocumentIndex": 98,
              "Title": "Sys_DictionaryController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
@@ -746,31 +1768,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAABEAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2024-11-14T07:21:55.699Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 30,
              "Title": "SchedulerCenterServer.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "ViewState": "AgIAALMAAAAAAAAAAAAEwOcAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-19T02:46:45.891Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "DocumentIndex": 97,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
@@ -782,103 +1780,19 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 33,
              "DocumentIndex": 99,
              "Title": "DBSeed.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Seed\\DBSeed.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Seed\\DBSeed.cs",
              "ViewState": "AgIAAHkAAAAAAAAAAAAAwI4AAABSAAAAAAAAAA==",
              "ViewState": "AgIAAFoAAAAAAAAAAAAAwFoAAAAYAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T09:31:08.019Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 34,
              "Title": "Dt_DeviceInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ViewState": "AgIAACAAAAAAAAAAAAAwwCsAAAAeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:36:57.223Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 32,
              "Title": "IRouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAmAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-21T02:50:10.906Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 36,
              "Title": "QuartzJobAutofacModuleRegister.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACgAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:32:40.712Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 35,
              "Title": "JobSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACsAAAANAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:30:07.656Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 37,
              "Title": "QuartzNetExtension.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "ViewState": "AgIAABwAAAAAAAAAAAASwCgAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-15T01:36:48.189Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 39,
              "Title": "JobBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\JobBase.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\JobBase.cs",
              "ViewState": "AgIAAAQAAAAAAAAAAAAAAGkAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:31:45.652Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 38,
              "Title": "DispatchInfoDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABoAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-20T01:10:50.115Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 45,
              "DocumentIndex": 102,
              "Title": "StackerCraneDBName.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
@@ -890,19 +1804,19 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 43,
              "DocumentIndex": 101,
              "Title": "SchedulerController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
              "ViewState": "AgIAAAwAAAAAAAAAAAAAABsAAAA3AAAAAAAAAA==",
              "ViewState": "AgIAAAkAAAAAAAAAAABIwBsAAAA3AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T06:22:06.737Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 40,
              "DocumentIndex": 100,
              "Title": "TestJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs",
@@ -914,7 +1828,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 46,
              "DocumentIndex": 103,
              "Title": "CustomAuthorizeFilter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
@@ -926,31 +1840,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 41,
              "Title": "ServiceBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "ViewState": "AgIAACEAAAAAAAAAAAApwJoAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-19T07:26:59.037Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 42,
              "Title": "RepositoryBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "ViewState": "AgIAAOUBAAAAAAAAAAD4vwcCAABBAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-19T07:25:55.034Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 47,
              "DocumentIndex": 104,
              "Title": "AutoMapperConfig.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
@@ -962,43 +1852,19 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 44,
              "Title": "ISchedulerCenter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "ViewState": "AgIAADIAAAAAAAAAAAAQwFEAAAA3AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:27:27.505Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 48,
              "Title": "CustomProfile.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAnAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-15T07:25:51.567Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 55,
              "DocumentIndex": 111,
              "Title": "Sys_Menu.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
              "ViewState": "AgIAADAAAAAAAAAAAAA1wE4AAAAqAAAAAAAAAA==",
              "ViewState": "AgIAADEAAAAAAAAAAAAUwE4AAAAqAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-18T02:09:18.01Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 52,
              "DocumentIndex": 108,
              "Title": "Sys_MenuRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
@@ -1010,7 +1876,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 54,
              "DocumentIndex": 110,
              "Title": "ISys_MenuRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
@@ -1022,7 +1888,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 51,
              "DocumentIndex": 107,
              "Title": "Sys_RoleService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
@@ -1034,7 +1900,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 50,
              "DocumentIndex": 106,
              "Title": "Sys_MenuService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
@@ -1046,7 +1912,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 49,
              "DocumentIndex": 105,
              "Title": "ISys_MenuService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
@@ -1058,19 +1924,19 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 60,
              "DocumentIndex": 116,
              "Title": "index.html",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
              "RelativeToolTip": "WIDESEAWCS_Server\\index.html",
              "ViewState": "AgIAAI0AAAAAAAAAAAAAAJQAAAA1AAAAAAAAAA==",
              "ViewState": "AgIAAIkAAAAAAAAAAABQwJQAAAA1AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
              "WhenOpened": "2024-11-15T07:17:59.198Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 59,
              "DocumentIndex": 115,
              "Title": "Sys_UserController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
@@ -1082,7 +1948,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 53,
              "DocumentIndex": 109,
              "Title": "MenuDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\MenuDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\MenuDTO.cs",
@@ -1094,7 +1960,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 56,
              "DocumentIndex": 112,
              "Title": "Sys_MenuController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
@@ -1106,7 +1972,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 58,
              "DocumentIndex": 114,
              "Title": "AutoMapperSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
@@ -1118,7 +1984,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 57,
              "DocumentIndex": 113,
              "Title": "WIDESEAWCS.xml",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS.xml",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS.xml",
@@ -1130,7 +1996,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 61,
              "DocumentIndex": 117,
              "Title": "DispatchInfoController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
@@ -1142,43 +2008,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 62,
              "Title": "QuartzJobDataTableHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "ViewState": "AgIAACYAAAAAAAAAAADwvyEAAABIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:33:24.489Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 63,
              "Title": "QuartzLogger.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAOAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T03:42:39.372Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 64,
              "Title": "Storage.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Storage.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Storage.cs",
              "ViewState": "AgIAAAkAAAAAAAAAAAAAABwAAAAuAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T03:42:32.674Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 66,
              "DocumentIndex": 119,
              "Title": "ActionDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\ActionDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\ActionDTO.cs",
@@ -1190,7 +2020,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 65,
              "DocumentIndex": 118,
              "Title": "UserPermissions.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\UserPermissions.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\UserPermissions.cs",
@@ -1202,19 +2032,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 67,
              "Title": "DeviceInfoDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T07:49:25.651Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 68,
              "DocumentIndex": 120,
              "Title": "TaskExecuteDetailService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
@@ -1226,7 +2044,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 69,
              "DocumentIndex": 121,
              "Title": "ShuttleCarJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
@@ -1238,152 +2056,19 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 71,
              "Title": "Dt_DeviceProtocol.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAQwGAAAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:11.706Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 70,
              "Title": "DeviceProDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "ViewState": "AgIAAB0AAAAAAAAAAADwvzoAAAAmAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:25:37.029Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 72,
              "Title": "IConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "ViewState": "AgIAACQAAAAAAAAAAAArwEEAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:29:28.34Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 73,
              "Title": "DeviceProtocolDetailService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "ViewState": "AgIAABYAAAAAAAAAAAAWwDMAAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:33.598Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 75,
              "Title": "Dt_Router.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "ViewState": "AgIAAAMAAAAAAAAAAABIwBQAAABUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:46.049Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 76,
              "Title": "Dt_DeviceProtocolDetail.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "ViewState": "AgIAACAAAAAAAAAAAAAwwCcAAABSAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:24.357Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 74,
              "Title": "DeviceInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ViewState": "AgIAACAAAAAAAAAAAAD4vzgAAAC2AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:02:36.16Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 77,
              "DocumentIndex": 122,
              "Title": "BaseEntity.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
              "ViewState": "AgIAACYAAAAAAAAAAADwvz4AAAAzAAAAAAAAAA==",
              "ViewState": "AgIAACMAAAAAAAAAAADwvzcAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T08:05:29.472Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 78,
              "Title": "IStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:26:43.303Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 79,
              "Title": "SpeStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:18:03.553Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 80,
              "Title": "WIDESEAWCS_Core.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "RelativeToolTip": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABoAAABSAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-11-13T02:53:57.289Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 81,
              "Title": "DeviceProtocolService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "ViewState": "AgIAABIAAAAAAAAAAABIwC8AAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:34.541Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 82,
              "DocumentIndex": 123,
              "Title": "InitializationHostServiceSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
@@ -1395,7 +2080,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 83,
              "DocumentIndex": 124,
              "Title": "SeedDataHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
@@ -1404,78 +2089,40 @@
              "ViewState": "AgIAAAUAAAAAAAAAAAAnwA4AAAA+AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T09:31:17.763Z"
            },
            }
          ]
        }
      ]
    },
    {
      "Orientation": 0,
      "VerticalTabListWidth": 256,
      "FloatingWindowState": {
        "Id": "82346c07-39be-4292-94d1-6ae77abb9458",
        "Display": 0,
        "X": 502,
        "Y": 150,
        "Width": 1423,
        "Height": 781,
        "WindowState": 0
      },
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 0,
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 84,
              "Title": "IDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "ViewState": "AgIAABUAAAAAAAAAAABIwD0AAAATAAAAAAAAAA==",
              "DocumentIndex": 7,
              "Title": "BaseCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ViewState": "AgIAAIEAAAAAAAAAAAAuwJsAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:11:35.273Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 86,
              "Title": "ShuttleCar.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "ViewState": "AgIAAGwAAAAAAAAAAAAmwGwAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:30:13.299Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 87,
              "Title": "IShuttleCar.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAABIwB0AAABpAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:29:59.091Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 85,
              "Title": "IOtherDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "ViewState": "AgIAAA4AAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:36:30.442Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 88,
              "Title": "StackerCraneTaskCompletedEventArgs.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAuwB8AAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:15:38.217Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 89,
              "Title": "QuartzJobCreateDataTabel.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "ViewState": "AgIAAEwAAAAAAAAAAAAAwCQAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:35:29.846Z"
              "WhenOpened": "2024-11-11T06:53:45.876Z",
              "EditorCaption": ""
            }
          ]
        }
WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
@@ -55,10 +55,19 @@
        #endregion Private Member
        #region Public Member
        /// <summary>
        /// æ—¥å¿—记录实例对象
        /// </summary>
        public override ILogNet LogNet => _logNet;
        /// <summary>
        /// PLC名称
        /// </summary>
        public override string Name => _name;
        /// <summary>
        /// èŽ·å–å½“å‰é€šè®¯å™¨æ˜¯å¦å·²è¿žæŽ¥åˆ°PLC。
        /// </summary>
        public override bool IsConnected => _connected;
        #endregion Public Member
@@ -336,6 +345,11 @@
        #endregion
        #region Public Method
        /// <summary>
        /// è¿žæŽ¥åˆ°PLC。
        /// </summary>
        /// <returns>如果连接成功则返回true,否则返回false。</returns>
        /// <exception cref="CommunicationException">自定义通讯异常类</exception>
        public override bool Connect()
        {
            try
@@ -365,6 +379,10 @@
            }
        }
        /// <summary>
        /// æ–­å¼€ä¸Žå·¥ä¸šè®¾å¤‡çš„连接。
        /// </summary>
        /// <returns>如果成功断开连接则返回true,如果已经是断开状态则返回false。</returns>
        public override bool Disconnect()
        {
            try
@@ -394,28 +412,59 @@
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">要读取的数据长度。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或空数组。</returns>
        public override byte[] Read(string address, int length)
        {
            return (byte[])GetContent(plc.Read(address, (ushort)length), address);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override T Read<T>(string address)
        {
            Type type = typeof(T);
            return (T)Read(address, Type.GetTypeCode(type));
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">读取的长度。</param>
        /// <returns></returns>
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">数据类型。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override object ReadAsObj(string address, string dataType)
        {
            return Read(address, SiemensDBDataType.GetTypeCode(dataType));
        }
        /// <summary>
        /// è¯»å–自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>成功返回自定义类型数据,失败抛出异常。</returns>
        public override T ReadCustomer<T>(string address)
        {
            try
@@ -429,6 +478,15 @@
            }
        }
        /// <summary>
        /// ç­‰å¾…指定地址的泛型类型值为指定的值
        /// </summary>
        /// <typeparam name="T">指定的值的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="readInterval">读取的频率。</param>
        /// <param name="waitTimeout">等待的超时时间,如果超时时间为-1的话,则是无期限等待。</param>
        /// <param name="value">等待检测的值</param>
        /// <returns>是否等待成功的结果对象,一旦通信失败,或是等待超时就返回失败。否则返回成功,并告知调用方等待了多久。</returns>
        public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
        {
            TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -465,6 +523,13 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="data">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write(string address, byte[] data)
        {
            try
@@ -487,16 +552,37 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write<T>(string address, T value)
        {
            return GetResult(Write(address, value), address, value);
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="values">要写入的数据。</param>
        /// <returns></returns>
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        /// <summary>
        /// å†™å…¥è‡ªå®šä¹‰ç±»åž‹çš„æ•°æ®ï¼Œè¯¥ç±»åž‹å¿…须继承自IDataTransfer接口。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
            StringBuilder stringBuilder = new StringBuilder();
@@ -550,6 +636,14 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">要写入的数据类型。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        /// <exception cref="CommunicationException"></exception>
        public override bool WriteObj(string address, string dataType, object value)
        {
            bool obj = false;
WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
@@ -79,7 +79,7 @@
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">读取的长度。</param>
        /// <returns></returns>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public abstract T[] Read<T>(string address, ushort length);
        /// <summary>
@@ -113,7 +113,7 @@
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="values">要写入的数据。</param>
        /// <returns></returns>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public abstract bool Write<T>(string address, T[] values);
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_Communicator/CommunicationException.cs
@@ -110,6 +110,9 @@
        ReadException
    }
    /// <summary>
    /// é€šè®¯å¼‚常信息
    /// </summary>
    public class CommunicationExceptionMessage
    {
        /// <summary>
@@ -158,6 +161,9 @@
        public const string TypeConvertError = "数据类型转换错误,数据类型:【{0}】,地址:【{1}】,写入的数据:【{2}】,错误信息:【{3}】";
    }
    /// <summary>
    /// é€šè®¯æ—¥å¿—记录信息
    /// </summary>
    public class CommunicationInfoMessage
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
@@ -39,10 +39,19 @@
        #endregion
        #region PublicMember
        /// <summary>
        /// æ—¥å¿—记录实例对象
        /// </summary>
        public override ILogNet LogNet => _logNet;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public override string Name => _name;
        /// <summary>
        /// èŽ·å–å½“å‰é€šè®¯å™¨æ˜¯å¦å·²è¿žæŽ¥åˆ°PLC。
        /// </summary>
        public override bool IsConnected => _connected;
        #endregion
@@ -316,6 +325,10 @@
        #endregion
        #region PublicMethod
        /// <summary>
        /// è¿žæŽ¥åˆ°PLC。
        /// </summary>
        /// <returns>如果连接成功则返回true,否则返回false。</returns>
        public override bool Connect()
        {
            try
@@ -340,6 +353,10 @@
            }
        }
        /// <summary>
        /// æ–­å¼€ä¸Žå·¥ä¸šè®¾å¤‡çš„连接。
        /// </summary>
        /// <returns>如果成功断开连接则返回true,如果已经是断开状态则返回false。</returns>
        public override bool Disconnect()
        {
            try
@@ -362,6 +379,9 @@
            }
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡èµ„源的接口。
        /// </summary>
        public override void Dispose()
        {
            _isPing = false;
@@ -370,27 +390,59 @@
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">要读取的数据长度。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或空数组。</returns>
        public override byte[] Read(string address, int length)
        {
            return (byte[])GetContent(plc.Read(address, (ushort)length), address);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override T Read<T>(string address)
        {
            Type type = typeof(T);
            return (T)Read(address, Type.GetTypeCode(type));
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">读取的长度。</param>
        /// <returns></returns>
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">数据类型。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override object ReadAsObj(string address, string dataType)
        {
            return Read(address, SiemensDBDataType.GetTypeCode(dataType));
        }
        /// <summary>
        /// è¯»å–自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>成功返回自定义类型数据,失败抛出异常。</returns>
        public override T ReadCustomer<T>(string address)
        {
            throw new Exception("该方法暂不可用");
@@ -405,6 +457,15 @@
            //}
        }
        /// <summary>
        /// ç­‰å¾…指定地址的泛型类型值为指定的值
        /// </summary>
        /// <typeparam name="T">指定的值的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="readInterval">读取的频率。</param>
        /// <param name="waitTimeout">等待的超时时间,如果超时时间为-1的话,则是无期限等待。</param>
        /// <param name="value">等待检测的值</param>
        /// <returns>是否等待成功的结果对象,一旦通信失败,或是等待超时就返回失败。否则返回成功,并告知调用方等待了多久。</returns>
        public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
        {
            TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -441,6 +502,12 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="data">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write(string address, byte[] data)
        {
            try
@@ -463,17 +530,37 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write<T>(string address, T value)
        {
            return GetResult(Write(address, value), address, value);
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="values">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        /// <summary>
        /// å†™å…¥è‡ªå®šä¹‰ç±»åž‹çš„æ•°æ®ï¼Œè¯¥ç±»åž‹å¿…须继承自IDataTransfer接口。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
            throw new Exception("该方法暂不可用");
@@ -528,6 +615,14 @@
            //}
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">要写入的数据类型。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        /// <exception cref="CommunicationException"></exception>
        public override bool WriteObj(string address, string dataType, object value)
        {
            bool obj = false;
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
@@ -39,10 +39,19 @@
        #endregion
        #region PublicMember
        /// <summary>
        /// æ—¥å¿—记录实例对象
        /// </summary>
        public override ILogNet LogNet => _logNet;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public override string Name => _name;
        /// <summary>
        /// èŽ·å–å½“å‰é€šè®¯å™¨æ˜¯å¦å·²è¿žæŽ¥åˆ°PLC。
        /// </summary>
        public override bool IsConnected => _connected;
        #endregion
@@ -312,6 +321,10 @@
        #endregion
        #region PublicMethod
        /// <summary>
        /// è¿žæŽ¥åˆ°PLC。
        /// </summary>
        /// <returns>如果连接成功则返回true,否则返回false。</returns>
        public override bool Connect()
        {
            try
@@ -335,6 +348,10 @@
            }
        }
        /// <summary>
        /// æ–­å¼€ä¸Žå·¥ä¸šè®¾å¤‡çš„连接。
        /// </summary>
        /// <returns>如果成功断开连接则返回true,如果已经是断开状态则返回false。</returns>
        public override bool Disconnect()
        {
            try
@@ -356,6 +373,9 @@
            }
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡èµ„源的接口。
        /// </summary>
        public override void Dispose()
        {
            _isPing = false;
@@ -364,27 +384,60 @@
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">要读取的数据长度。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或空数组。</returns>
        public override byte[] Read(string address, int length)
        {
            return (byte[])GetContent(plc.Read(address, (ushort)length), address);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override T Read<T>(string address)
        {
            Type type = typeof(T);
            return (T)Read(address, Type.GetTypeCode(type));
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">读取的长度。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">数据类型。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override object ReadAsObj(string address, string dataType)
        {
            return Read(address, SiemensDBDataType.GetTypeCode(dataType));
        }
        /// <summary>
        /// è¯»å–自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>成功返回自定义类型数据,失败抛出异常。</returns>
        public override T ReadCustomer<T>(string address)
        {
            throw new Exception("该方法暂不可用");
@@ -399,6 +452,15 @@
            //}
        }
        /// <summary>
        /// ç­‰å¾…指定地址的泛型类型值为指定的值
        /// </summary>
        /// <typeparam name="T">指定的值的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="readInterval">读取的频率。</param>
        /// <param name="waitTimeout">等待的超时时间,如果超时时间为-1的话,则是无期限等待。</param>
        /// <param name="value">等待检测的值</param>
        /// <returns>是否等待成功的结果对象,一旦通信失败,或是等待超时就返回失败。否则返回成功,并告知调用方等待了多久。</returns>
        public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
        {
            TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -435,6 +497,12 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="data">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write(string address, byte[] data)
        {
            try
@@ -457,15 +525,37 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write<T>(string address, T value)
        {
            return GetResult(Write(address, value), address, value);
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="values">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        /// <summary>
        /// å†™å…¥è‡ªå®šä¹‰ç±»åž‹çš„æ•°æ®ï¼Œè¯¥ç±»åž‹å¿…须继承自IDataTransfer接口。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
            throw new Exception("该方法暂不可用");
@@ -520,6 +610,14 @@
            //}
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">要写入的数据类型。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        /// <exception cref="CommunicationException"></exception>
        public override bool WriteObj(string address, string dataType, object value)
        {
            bool obj = false;
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
@@ -56,10 +56,19 @@
        #endregion Private Member
        #region Public Member
        /// <summary>
        /// æ—¥å¿—记录实例对象
        /// </summary>
        public override ILogNet LogNet => _logNet;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public override string Name => _name;
        /// <summary>
        /// èŽ·å–å½“å‰é€šè®¯å™¨æ˜¯å¦å·²è¿žæŽ¥åˆ°PLC。
        /// </summary>
        public override bool IsConnected => _connected;
        #endregion Public Member
@@ -330,6 +339,10 @@
        #endregion
        #region Public Method
        /// <summary>
        /// è¿žæŽ¥åˆ°PLC。
        /// </summary>
        /// <returns>如果连接成功则返回true,否则返回false。</returns>
        public override bool Connect()
        {
            try
@@ -358,6 +371,10 @@
            }
        }
        /// <summary>
        /// æ–­å¼€ä¸Žå·¥ä¸šè®¾å¤‡çš„连接。
        /// </summary>
        /// <returns>如果成功断开连接则返回true,如果已经是断开状态则返回false。</returns>
        public override bool Disconnect()
        {
            try
@@ -379,6 +396,9 @@
            }
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡èµ„源的接口。
        /// </summary>
        public override void Dispose()
        {
            _isPing = false;
@@ -387,28 +407,59 @@
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">要读取的数据长度。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或空数组。</returns>
        public override byte[] Read(string address, int length)
        {
            return (byte[])GetContent(plc.Read(address, (ushort)length), address);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override T Read<T>(string address)
        {
            Type type = typeof(T);
            return (T)Read(address, Type.GetTypeCode(type));
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">读取的长度。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        /// <summary>
        /// ä»ŽPLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">数据类型。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
        public override object ReadAsObj(string address, string dataType)
        {
            return Read(address, SiemensDBDataType.GetTypeCode(dataType));
        }
        /// <summary>
        /// è¯»å–自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <returns>成功返回自定义类型数据,失败抛出异常。</returns>
        public override T ReadCustomer<T>(string address)
        {
            try
@@ -422,6 +473,15 @@
            }
        }
        /// <summary>
        /// ç­‰å¾…指定地址的泛型类型值为指定的值
        /// </summary>
        /// <typeparam name="T">指定的值的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="readInterval">读取的频率。</param>
        /// <param name="waitTimeout">等待的超时时间,如果超时时间为-1的话,则是无期限等待。</param>
        /// <param name="value">等待检测的值</param>
        /// <returns>是否等待成功的结果对象,一旦通信失败,或是等待超时就返回失败。否则返回成功,并告知调用方等待了多久。</returns>
        public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
        {
            TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -458,6 +518,12 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="data">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write(string address, byte[] data)
        {
            try
@@ -480,16 +546,37 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write<T>(string address, T value)
        {
            return GetResult(Write(address, value), address, value);
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="values">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        /// <summary>
        /// å†™å…¥è‡ªå®šä¹‰ç±»åž‹çš„æ•°æ®ï¼Œè¯¥ç±»åž‹å¿…须继承自IDataTransfer接口。
        /// </summary>
        /// <typeparam name="T">自定义的数据类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
            StringBuilder stringBuilder = new StringBuilder();
@@ -543,6 +630,14 @@
            }
        }
        /// <summary>
        /// å‘PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">要写入的数据类型。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,失败则抛出异常。</returns>
        /// <exception cref="CommunicationException"></exception>
        public override bool WriteObj(string address, string dataType, object value)
        {
            bool obj = false;
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
@@ -84,6 +84,9 @@
        /// </summary>
        public override string Name => _name;
        /// <summary>
        /// PLC读写日志记录
        /// </summary>
        public override ILogNet LogNet => _logNet;
        #endregion Public Member
@@ -722,7 +725,9 @@
        }
        #endregion
        // æ˜¾å¼å®žçްIDisposable接口以提供垃圾回收时的清理
        /// <summary>
        /// æ˜¾å¼å®žçްIDisposable接口以提供垃圾回收时的清理
        /// </summary>
        public override void Dispose()
        {
            _isPing = false;
@@ -731,6 +736,15 @@
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// ç­‰å¾…指定地址的泛型类型值为指定的值
        /// </summary>
        /// <typeparam name="T">指定的值的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="readInterval">读取的频率。</param>
        /// <param name="waitTimeout">等待的超时时间,如果超时时间为-1的话,则是无期限等待。</param>
        /// <param name="value">等待检测的值</param>
        /// <returns>是否等待成功的结果对象,一旦通信失败,或是等待超时就返回失败。否则返回成功,并告知调用方等待了多久。</returns>
        public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
        {
            TypeCode typeCode = Type.GetTypeCode(typeof(T));
WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
@@ -4,8 +4,13 @@
        <TargetFramework>net6.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <Version>2.2.2</Version>
        <Description>新增同类型数据读取/写入指定长度方法</Description>
        <Version>2.2.3</Version>
        <Description>
            æ–°å¢žåŒç±»åž‹æ•°æ®è¯»å–/写入指定长度方法
            2025-01-02:添加注释
        </Description>
        <GenerateDocumentationFile>True</GenerateDocumentationFile>
    </PropertyGroup>
    <ItemGroup>
WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/IRepository.cs
@@ -7,6 +7,7 @@
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.Enums;
namespace WIDESEAWCS_Core.BaseRepository
{
@@ -408,11 +409,8 @@
            int pageSize = 20,
            string? orderByFields = null);
        bool DeleteAndMoveIntoHty(TEntity entity, OperateTypeEnum operateType);
        //List<TResult> QueryMuch<T, T2, T3, TResult>(
        //    Expression<Func<T, T2, T3, object[]>> joinExpression,
        //    Expression<Func<T, T2, T3, TResult>> selectExpression,
        //    Expression<Func<T, T2, T3, bool>> whereLambda = null) where T : class, new();
        //Task<PageModel<TEntity>> QueryPage(PaginationModel pagination);
        bool DeleteAndMoveIntoHty(List<TEntity> entities, OperateTypeEnum operateType);
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs
@@ -16,6 +16,9 @@
using WIDESEAWCS_Core.Const;
using WIDESEAWCS_Core.AOP;
using OfficeOpenXml.FormulaParsing.ExpressionGraph;
using WIDESEAWCS_Core.DB.Models;
using WIDESEAWCS_Core.Utilities;
using WIDESEAWCS_Core.Enums;
namespace WIDESEAWCS_Core.BaseRepository
{
@@ -846,10 +849,102 @@
             .WhereIF(whereExpression != null, whereExpression).ToListAsync();
        }
        //List<TResult> QueryMuch<T, T2, T3, TResult>(
        //    Expression<Func<T, T2, T3, object[]>> joinExpression,
        //    Expression<Func<T, T2, T3, TResult>> selectExpression,
        //    Expression<Func<T, T2, T3, bool>> whereLambda = null) where T : class, new(){throw new NotImplementedException();}
        //Task<PageModel<TEntity>> QueryPage(PaginationModel pagination){throw new NotImplementedException();}
        public bool DeleteAndMoveIntoHty(TEntity entity, OperateTypeEnum operateType)
        {
            Type type = entity.GetType();
            Assembly assembly = type.Assembly;
            Type? htyType = assembly.GetType(type.FullName + "_Hty");
            if (htyType != null)
            {
                object? obj = Activator.CreateInstance(htyType);
                PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
                PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
                if (obj != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
                {
                    operateTypePro.SetValue(obj, operateType.ToString());
                    sourceIdPro.SetValue(obj, keyPro.GetValue(entity));
                    List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList();
                    for (int i = 0; i < propertyInfos.Count; i++)
                    {
                        PropertyInfo propertyInfo = propertyInfos[i];
                        PropertyInfo? property = type.GetProperty(propertyInfo.Name);
                        if (property != null)
                        {
                            if (propertyInfo.Name == nameof(BaseEntity.Modifier))
                            {
                                propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System");
                            }
                            else if (propertyInfo.Name == nameof(BaseEntity.ModifyDate))
                            {
                                propertyInfo.SetValue(obj, DateTime.Now);
                            }
                            else
                            {
                                propertyInfo.SetValue(obj, property.GetValue(entity));
                            }
                        }
                    }
                    _db.InsertableByObject(obj).AS(type.Name + "_Hty").ExecuteCommand();
                }
            }
            return DeleteData(entity);
        }
        public bool DeleteAndMoveIntoHty(List<TEntity> entities, OperateTypeEnum operateType)
        {
            Type type = typeof(TEntity);
            Assembly assembly = type.Assembly;
            Type? htyType = assembly.GetType(type.FullName + "_Hty");
            if (htyType != null)
            {
                object? obj2 = Activator.CreateInstance(htyType);
                PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
                PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
                if (obj2 != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
                {
                    List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList();
                    List<object> list = new List<object>();
                    foreach (var item in entities)
                    {
                        object? obj = Activator.CreateInstance(htyType);
                        if (obj != null)
                        {
                            operateTypePro.SetValue(obj, operateType.ToString());
                            sourceIdPro.SetValue(obj, keyPro.GetValue(item));
                            for (int i = 0; i < propertyInfos.Count; i++)
                            {
                                PropertyInfo propertyInfo = propertyInfos[i];
                                PropertyInfo? property = type.GetProperty(propertyInfo.Name);
                                if (property != null)
                                {
                                    if (propertyInfo.Name == nameof(BaseEntity.Modifier))
                                    {
                                        propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System");
                                    }
                                    else if (propertyInfo.Name == nameof(BaseEntity.ModifyDate))
                                    {
                                        propertyInfo.SetValue(obj, DateTime.Now);
                                    }
                                    else
                                    {
                                        propertyInfo.SetValue(obj, property.GetValue(item));
                                    }
                                }
                            }
                            list.Add(obj);
                        }
                    }
                    _db.InsertableByObject(list).AS(type.Name + "_Hty").ExecuteCommand();
                }
            }
            return DeleteData(entities);
        }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
@@ -49,17 +49,23 @@
        public virtual PageGridData<TEntity> GetPageData(PageDataOptions options)
        {
            string wheres = ValidatePageOptions(options);
            ISugarQueryable<TEntity> sugarQueryable = Db.Queryable<TEntity>();
            string wheres = ValidatePageOptions(options, ref sugarQueryable);
            //获取排序字段
            Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
            int total = 0;
            PageGridData<TEntity> pageGridData = new PageGridData<TEntity>();
            pageGridData = BaseDal.QueryPage(wheres, options.Page, options.Rows, orderbyDic);
            pageGridData.Rows = sugarQueryable.ToPageList(options.Page, options.Rows, ref total);
            pageGridData.Total = total;
            //pageGridData = BaseDal.QueryPage(wheres, options.Page, options.Rows, orderbyDic);
            return pageGridData;
        }
        protected string ValidatePageOptions(PageDataOptions options)
        protected string ValidatePageOptions(PageDataOptions options, ref ISugarQueryable<TEntity> sugarQueryable)
        {
            options = options ?? new PageDataOptions();
            string where = "";
@@ -86,7 +92,7 @@
                    continue;
                }
                PropertyInfo property = TProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
                PropertyInfo? property = TProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
                if (property == null) continue;
@@ -97,53 +103,124 @@
                }
                for (int j = 0; j < results.Count(); j++)
                {
                    if (j == 0)
                    {
                        where += "(";
                    }
                    LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
                    if (expressionType == LinqExpressionType.Equal)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.Equal} '{results[j].Item3}'";
                    }
                    else if (expressionType == LinqExpressionType.ThanOrEqual)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.ThanOrEqual} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.LessThanOrEqual)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.LessOrEqual} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.GreaterThan)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.GT} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.LessThan)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.LT} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.Contains)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.like} '%{searchParametersList[i].Value}%'";
                    }
                    else
                    {
                        where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{results[j].Item3}'";
                    }
                    Expression<Func<TEntity, bool>> expression = GetWhereExpression(property.Name, results[j].Item3, null, expressionType);
                    sugarQueryable = sugarQueryable.Where(expression);
                    if (j == results.Count() - 1)
                    {
                        where += ")";
                    }
                    else
                    {
                        where += " or ";
                    }
                    //if (j == 0)
                    //{
                    //    where += "(";
                    //}
                    //LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
                    //if (expressionType == LinqExpressionType.Equal)
                    //{
                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.Equal} '{results[j].Item3}'";
                    //}
                    //else if (expressionType == LinqExpressionType.ThanOrEqual)
                    //{
                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.ThanOrEqual} '{searchParametersList[i].Value}'";
                    //}
                    //else if (expressionType == LinqExpressionType.LessThanOrEqual)
                    //{
                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.LessOrEqual} '{searchParametersList[i].Value}'";
                    //}
                    //else if (expressionType == LinqExpressionType.GreaterThan)
                    //{
                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.GT} '{searchParametersList[i].Value}'";
                    //}
                    //else if (expressionType == LinqExpressionType.LessThan)
                    //{
                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.LT} '{searchParametersList[i].Value}'";
                    //}
                    //else if (expressionType == LinqExpressionType.Contains)
                    //{
                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.like} '%{searchParametersList[i].Value}%'";
                    //}
                    //else
                    //{
                    //    where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{results[j].Item3}'";
                    //}
                    //if (j == results.Count() - 1)
                    //{
                    //    where += ")";
                    //}
                    //else
                    //{
                    //    where += " or ";
                    //}
                }
                if (i < searchParametersList.Count - 1)
                    where += " and ";
                //if (i < searchParametersList.Count - 1)
                //    where += " and ";
            }
            return where;
        }
        private Expression<Func<TEntity, bool>> GetWhereExpression(string propertyName, object propertyValue, ParameterExpression parameter, LinqExpressionType expressionType)
        {
            Type? proType = typeof(TEntity).GetProperty(propertyName)?.PropertyType;
            if (proType == null) return p => true;
            if (propertyValue == null) return p => true;
            string? value = propertyValue?.ToString();
            if (value == null) return p => true;
            ConstantExpression constant = proType.ToString() == "System.String"
               ? Expression.Constant(propertyValue) : Expression.Constant(value.ChangeType(proType));
            // DateTime只选择了日期的时候自动在结束日期加一天,修复DateTime类型使用日期区间查询无法查询到结束日期的问题
            if ((proType == typeof(DateTime) || proType == typeof(DateTime?)) && expressionType == LinqExpressionType.LessThanOrEqual && value.Length == 10)
            {
                constant = Expression.Constant(Convert.ToDateTime(value).AddDays(1));
            }
            parameter = parameter ?? Expression.Parameter(typeof(TEntity), "x");
            //创建节点的属性p=>p.name å±žæ€§name
            MemberExpression memberProperty = Expression.PropertyOrField(parameter, propertyName);
            UnaryExpression member = Expression.Convert(memberProperty, constant.Type);
            Expression<Func<TEntity, bool>> expression = p => false;
            switch (expressionType)
            {
                case LinqExpressionType.Equal:
                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.Equal(member, constant), parameter);
                    break;
                case LinqExpressionType.NotEqual:
                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.NotEqual(member, constant), parameter);
                    break;
                case LinqExpressionType.GreaterThan:
                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.GreaterThan(member, constant), parameter);
                    break;
                case LinqExpressionType.LessThan:
                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.LessThan(member, constant), parameter);
                    break;
                case LinqExpressionType.ThanOrEqual:
                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.GreaterThanOrEqual(member, constant), parameter);
                    break;
                case LinqExpressionType.LessThanOrEqual:
                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.LessThanOrEqual(member, constant), parameter);
                    break;
                case LinqExpressionType.Contains:
                case LinqExpressionType.NotContains:
                    MethodInfo? method = typeof(string).GetMethod("Contains", new[] { typeof(string) });
                    if (method != null)
                    {
                        constant = Expression.Constant(propertyValue, typeof(string));
                        if (expressionType == LinqExpressionType.Contains)
                        {
                            expression = Expression.Lambda<Func<TEntity, bool>>(Expression.Call(member, method, constant), parameter);
                        }
                        else
                        {
                            expression = Expression.Lambda<Func<TEntity, bool>>(Expression.Not(Expression.Call(member, method, constant)), parameter);
                        }
                    }
                    else
                    {
                        expression = p => true;
                    }
                    break;
                default:
                    expression = p => false;
                    break;
            }
            return expression;
        }
        /// <summary>
@@ -620,10 +697,10 @@
            try
            {
                Type t = typeof(TEntity);
                ISugarQueryable<TEntity> sugarQueryable = Db.Queryable<TEntity>();
                string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelExport";
                IExporter exporter = new ExcelExporter();
                string wheres = ValidatePageOptions(options);
                string wheres = ValidatePageOptions(options, ref sugarQueryable);
                //获取排序字段
                Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
WIDESEAWCS_Server/WIDESEAWCS_Core/DB/Models/IBaseHistoryEntity.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
using Magicodes.ExporterAndImporter.Core;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_Core.DB.Models
{
    public interface IBaseHistoryEntity
    {
        /// <summary>
        /// åŽŸè¡¨ä¸»é”®
        /// </summary>
        [ImporterHeader(Name = "原表主键")]
        [ExporterHeader(DisplayName = "原表主键")]
        [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "原表主键")]
        public int SourceId { get; set; }
        /// <summary>
        /// æ“ä½œç±»åž‹
        /// </summary>
        [ImporterHeader(Name = "操作类型")]
        [ExporterHeader(DisplayName = "操作类型")]
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "操作类型")]
        public string OperateType { get; set; }
        /// <summary>
        /// ç§»å…¥åŽ†å²æ—¶é—´
        /// </summary>
        [ImporterHeader(Name = "移入历史时间")]
        [ExporterHeader(DisplayName = "移入历史时间")]
        [SugarColumn(IsNullable = false, ColumnDescription = "移入历史时间")]
        public DateTime InsertTime { get; set; }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/OperateTypeEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_Core.Enums
{
    public enum OperateTypeEnum
    {
        äººå·¥åˆ é™¤ = 1,
        è‡ªåŠ¨åˆ é™¤ = 2,
        äººå·¥æ¢å¤ = 3,
        è‡ªåŠ¨æ¢å¤ = 4,
        äººå·¥å®Œæˆ = 5,
        è‡ªåŠ¨å®Œæˆ = 6,
        å…³é—­ = 7,
        å…¶ä»– = 99
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
@@ -4,6 +4,7 @@
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.LogHelper;
namespace WIDESEAWCS_Core.Helper
{
@@ -11,38 +12,49 @@
    {
        public static async Task<string> GetAsync(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null)
        {
            string result = string.Empty;
            DateTime beginDate = DateTime.Now;
            try
            {
                string result = string.Empty;
                using HttpClient httpClient = new HttpClient();
                httpClient.Timeout = new TimeSpan(0, 0, 60);
                foreach (var header in headers)
                    httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                if (headers != null)
                {
                    foreach (var header in headers)
                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                }
                result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync();
                return result;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw new Exception(e.Message);
            }
            return null;
            finally
            {
                Logger.Add(serviceAddress, "", result, beginDate);
            }
        }
        public static async Task<string> PostAsync(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
        public static async Task<string?> PostAsync(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
        {
            string result = string.Empty;
            DateTime beginDate = DateTime.Now;
            try
            {
                string result = string.Empty;
                using (HttpContent httpContent = new StringContent(requestJson))
                {
                    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                    using HttpClient httpClient = new HttpClient();
                    httpClient.Timeout = new TimeSpan(0, 0, 60);
                    foreach (var header in headers)
                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                    if (headers != null)
                    {
                        foreach (var header in headers)
                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                    }
                    result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync();
                }
@@ -50,45 +62,59 @@
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw new Exception(e.Message);
            }
            return null;
            finally
            {
                Logger.Add(serviceAddress, requestJson == null ? "": requestJson, result, beginDate);
            }
        }
        public static string Get(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null)
        {
            string result = string.Empty;
            DateTime beginDate = DateTime.Now;
            try
            {
                string result = string.Empty;
                using HttpClient httpClient = new HttpClient();
                httpClient.Timeout = new TimeSpan(0, 0, 60);
                foreach (var header in headers)
                    httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                if (headers != null)
                {
                    foreach (var header in headers)
                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                }
                result = httpClient.GetStringAsync(serviceAddress).Result;
                return result;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw new Exception(e.Message);
            }
            return null;
            finally
            {
                Logger.Add(serviceAddress, "", result, beginDate);
            }
        }
        public static string Post(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
        {
            string result = string.Empty;
            DateTime beginDate = DateTime.Now;
            try
            {
                string result = string.Empty;
                using (HttpContent httpContent = new StringContent(requestJson))
                {
                    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                    using HttpClient httpClient = new HttpClient();
                    httpClient.Timeout = new TimeSpan(0, 0, 60);
                    foreach (var header in headers)
                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                    if (headers != null)
                    {
                        foreach (var header in headers)
                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
                    }
                    result = httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync().Result;
                }
@@ -96,9 +122,12 @@
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw new Exception(e.Message);
            }
            return null;
            finally
            {
                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
            }
        }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
@@ -128,13 +128,60 @@
            return queueTable;
        }
        public static void Add(string url, string requestParameter, string responseParameter, DateTime beginDate)
        {
            dynamic? log = null;
            try
            {
                //获取当前用户
                IUser? user = App.User;
                //创建日志对象
                log = new
                {
                    //请求开始时间
                    BeginDate = beginDate,
                    //请求结束时间
                    EndDate = DateTime.Now,
                    //请求参数
                    RequestParam = requestParameter,
                    //响应参数
                    ResponseParam = responseParameter,
                    //请求URL
                    Url = url,
                    //客户端IP
                    UserIP = "",
                    //用户ID
                    UserId = user?.UserId,
                    //用户名
                    UserName = user?.UserName
                };
            }
            catch (Exception exception)
            {
                //如果发生异常,则创建日志对象
                log = log ?? new
                {
                    //请求开始时间
                    BeginDate = DateTime.Now,
                    //请求结束时间
                    EndDate = DateTime.Now,
                    //请求参数
                    RequestParam = requestParameter,
                    //响应参数
                    ResponseParam = responseParameter,
                };
            }
            //添加系统日志
            loggerQueueData.Enqueue(log);
        }
        public static void Add(string requestParameter, string responseParameter)
        {
            dynamic log = null;
            dynamic? log = null;
            try
            {
                //获取当前HttpContext
                HttpContext context = App.HttpContext;
                HttpContext? context = App.HttpContext;
                //如果HttpContext为空,则返回
                if (context == null)
                {
@@ -146,7 +193,7 @@
                RequestLogModel logModel = (context.RequestServices.GetService(typeof(RequestLogModel)) as RequestLogModel) ?? new RequestLogModel { RequestDate = DateTime.Now };
                //获取当前用户
                IUser user = App.User;
                IUser? user = App.User;
                //创建日志对象
                log = new
                {
@@ -163,9 +210,9 @@
                    //客户端IP
                    UserIP = GetClientIP(context)?.Replace("::ffff:", ""),
                    //用户ID
                    UserId = user.UserId,
                    UserId = user?.UserId,
                    //用户名
                    UserName = user.UserName
                    UserName = user?.UserName
                };
            }
            catch (Exception exception)
WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
@@ -4,8 +4,9 @@
        <TargetFramework>net6.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <Version>1.0.6</Version>
        <Description>添加序列特性,可自动赋值</Description>
        <Version>1.0.10</Version>
        <Description>添加删除并移入历史方法(添加IBaseHistoryEntity,使用该方法时必须实现IBaseHistoryEntity)</Description>
        <GenerateDocumentationFile>false</GenerateDocumentationFile>
    </PropertyGroup>
    <ItemGroup>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -30,6 +30,9 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// è¾“送线实现对象
    /// </summary>
    [Description("输送线")]
    public class CommonConveyorLine : IConveyorLine
    {
@@ -238,9 +241,9 @@
        }
        /// <summary>
        ///
        /// æ˜¯å¦å ä½
        /// </summary>
        /// <param name="deviceChildCode"></param>
        /// <param name="deviceChildCode">设备子编号</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public bool IsOccupied(string deviceChildCode)
@@ -270,6 +273,9 @@
            return false;
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡
        /// </summary>
        public void Dispose()
        {
            // è®¾ç½®å¿ƒè·³çŠ¶æ€ä¸ºfalse
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/Enum/ConveyorLineStatus.cs
@@ -7,6 +7,9 @@
namespace WIDESEAWCS_QuartzJob.ConveyorLine.Enum
{
    /// <summary>
    /// è¾“送线状态枚举
    /// </summary>
    public enum ConveyorLineStatus
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs
@@ -68,6 +68,7 @@
        /// </summary>
        /// <typeparam name="T">任务命令对象的类型泛型</typeparam>
        /// <param name="command">任务命令</param>
        /// <param name="deviceChildCode">设备子编号</param>
        /// <returns></returns>
        bool SendCommand<T>(T command, string deviceChildCode) where T : IDataTransfer, new();
    }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/CustomException/QuartzJobException.cs
@@ -40,8 +40,14 @@
        /// </summary>
        public string ErrorType { get; }
        /// <summary>
        /// å¼‚常对象
        /// </summary>
        public Exception? BaseException { get; }
        /// <summary>
        /// é”™è¯¯ä¿¡æ¯
        /// </summary>
        public override string Message => _message;
        private string _message;
@@ -61,13 +67,19 @@
            _message = message;
        }
        /// <summary>
        /// è½¬å­—符串
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return base.ToString();
        }
    }
    /// <summary>
    ///
    /// </summary>
    public enum QuartzJobErrorType
    {
        /// <summary>
@@ -96,18 +108,39 @@
    /// </summary>
    public class QuartzJobExceptionMessage
    {
        /// <summary>
        ///
        /// </summary>
        public const string StartJobException = "调度服务开启异常,错误信息:{0}";
        /// <summary>
        ///
        /// </summary>
        public const string StopJobException = "调度服务停止异常,错误信息:{0}";
        /// <summary>
        ///
        /// </summary>
        public const string AddJobException = "调度计划添加异常:【{0}】,错误信息:{1}";
        /// <summary>
        ///
        /// </summary>
        public const string JobFactoryInstanceException = "从Factory中获取Scheduler实例异常,错误信息:{0}";
        /// <summary>
        ///
        /// </summary>
        public const string StopAJobException = "调度计划【{0}】停止异常,错误信息:{1}";
        /// <summary>
        ///
        /// </summary>
        public const string ResumeJobException = "调度计划【{0}】恢复异常,错误信息:{1}";
        /// <summary>
        ///
        /// </summary>
        public const string ExecuteJobException = "立即执行调度计划:【{0}】异常,错误信息:{1}";
    }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceInfoDTO.cs
@@ -25,6 +25,9 @@
namespace WIDESEAWCS_QuartzJob.DTO
{
    /// <summary>
    /// è®¾å¤‡ä¿¡æ¯DTO
    /// </summary>
    public class DeviceInfoDTO : Dt_DeviceInfo
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProDTO.cs
@@ -24,6 +24,9 @@
namespace WIDESEAWCS_QuartzJob.DTO
{
    /// <summary>
    /// è®¾å¤‡åè®®ä¿¡æ¯DTO
    /// </summary>
    public class DeviceProDTO
    {
        /// <summary>
@@ -31,6 +34,9 @@
        /// </summary>
        public int DeviceProId { get; set; }
        /// <summary>
        /// è®¾å¤‡PLC类型
        /// </summary>
        public string DevicePlcType { get; set; }
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProtocolDetailDTO.cs
@@ -23,6 +23,9 @@
namespace WIDESEAWCS_QuartzJob.DTO
{
    /// <summary>
    /// è®¾å¤‡åè®®æ˜Žç»†DTO
    /// </summary>
    public class DeviceProtocolDetailDTO
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs
@@ -24,6 +24,9 @@
namespace WIDESEAWCS_QuartzJob.DTO
{
    /// <summary>
    /// è°ƒåº¦æœåŠ¡é…ç½®DTO
    /// </summary>
    public class DispatchInfoDTO : Dt_DispatchInfo
    {
        /// <summary>
@@ -41,8 +44,9 @@
        /// </summary>
        public string DeviceType { get; set; }
        /// <summary>
        /// å¯ç”¨/禁用
        /// </summary>
        public string Enable { get; set; }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs
@@ -6,6 +6,9 @@
namespace WIDESEAWCS_DTO.BasicInfo
{
    /// <summary>
    /// è·¯ç”±æ·»åŠ DTO
    /// </summary>
    public class RoutersAddDTO
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/CustomException/StackerCraneException.cs
ÎļþÒÑɾ³ý
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DataLengthAttribute.cs
@@ -23,14 +23,23 @@
namespace WIDESEAWCS_QuartzJob.DeviceBase
{
    /// <summary>
    /// å­—符串长度特性
    /// </summary>
    [AttributeUsage(AttributeTargets.Property)]
    public class DataLengthAttribute : Attribute
    {
        public DataLengthAttribute(ushort dataLength)
        /// <summary>
        /// æž„造函数
        /// </summary>
        public DataLengthAttribute(ushort dataLength)
        {
            DataLength = dataLength;
        }
        /// <summary>
        /// å­—符串长度
        /// </summary>
        public ushort DataLength { get; set; }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs
@@ -35,6 +35,9 @@
        #endregion <Const>
        #region <Private Member>
        /// <summary>
        /// æ•°æ®é•¿åº¦
        /// </summary>
        public ushort ReadCount { get; }
        private IByteTransform byteTransform = new ReverseBytesTransform();
@@ -45,6 +48,10 @@
        #endregion <Public Menber>
        #region <Constructor function>
        /// <summary>
        /// æž„造函数
        /// </summary>
        /// <exception cref="NotSupportedException"></exception>
        public DeviceCommand()
        {
            ushort readCount = 0;
@@ -105,6 +112,11 @@
        #endregion <Private Method>
        #region <Public Method>
        /// <summary>
        /// æ•°æ®è£…换
        /// </summary>
        /// <param name="Content"></param>
        /// <exception cref="NotSupportedException"></exception>
        public void ParseSource(byte[] Content)
        {
            PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
@@ -156,6 +168,12 @@
            }
        }
        /// <summary>
        /// æ•°æ®è½¬æ¢
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        /// <exception cref="NotSupportedException"></exception>
        public byte[] ToSource()
        {
            int propertyValueHasNull = -1;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceStatus.cs
@@ -23,6 +23,9 @@
namespace WIDESEAWCS_QuartzJob.DeviceBase
{
    /// <summary>
    /// è®¾å¤‡çŠ¶æ€æžšä¸¾
    /// </summary>
    public enum DeviceStatus
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceEnum/DeviceStatus.cs
@@ -24,6 +24,9 @@
namespace WIDESEAWCS_QuartzJob.DeviceEnum
{
    /// <summary>
    /// è®¾å¤‡å¯ç”¨ç¦ç”¨çŠ¶æ€æžšä¸¾
    /// </summary>
    public enum DeviceStatusEnum
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs
@@ -10,6 +10,9 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// Job基类,主要给子类继承记录日志方法
    /// </summary>
    public class JobBase
    {
        /// <summary>
@@ -51,8 +54,8 @@
        /// <summary>
        /// å†™å…¥è°ƒè¯•日志
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="msg"></param>
        /// <param name="fileName">文件名</param>
        /// <param name="msg">日志信息</param>
        public void WriteDebug(string fileName, string msg)
        {
            if (AppSettings.Get(new string[] { "LogDeubgEnable" }).ObjToBool())
@@ -67,8 +70,8 @@
        /// <summary>
        /// å†™å…¥ä¿¡æ¯æ—¥å¿—
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="msg"></param>
        /// <param name="fileName">文件名</param>
        /// <param name="msg">日志信息</param>
        public void WriteInfo(string fileName, string msg)
        {
            StringBuilder builder = new StringBuilder(msg);
@@ -80,9 +83,22 @@
        /// <summary>
        /// å†™å…¥é”™è¯¯æ—¥å¿—
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="msg"></param>
        /// <param name="ex"></param>
        /// <param name="fileName">文件名</param>
        /// <param name="msg">日志信息</param>
        public void WriteError(string fileName, string msg)
        {
            StringBuilder builder = new StringBuilder(msg);
            builder.Append(Environment.NewLine);
            builder.Append(Environment.NewLine);
            QuartzLogger.WriteLogToFile($"Error_{fileName}", builder.ToString());
        }
        /// <summary>
        /// å†™å…¥é”™è¯¯æ—¥å¿—
        /// </summary>
        /// <param name="fileName">文件名</param>
        /// <param name="msg">日志信息</param>
        /// <param name="ex">异常信息</param>
        public void WriteError(string fileName, string msg, Exception ex)
        {
            StringBuilder builder = new StringBuilder(msg);
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs
@@ -40,6 +40,9 @@
        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "主键")]
        public int Id { get; set; }
        /// <summary>
        /// è°ƒåº¦è¡¨ä¸»é”®
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "调度表主键")]
        public int? DispatchId { get; set; }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs
@@ -10,6 +10,9 @@
namespace WIDESEAWCS_QuartzJob.Models
{
    /// <summary>
    /// è®¾å¤‡è·¯ç”±é…ç½®
    /// </summary>
    [SugarTable(nameof(Dt_Router), "设备路由配置")]
    public class Dt_Router : BaseEntity
    {
@@ -43,7 +46,7 @@
        [ImporterHeader(Name = "路由类型")]
        [ExporterHeader(DisplayName = "路由类型")]
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "路由类型")]
        public RouterInOutType InOutType { get; set; }
        public int InOutType { get; set; }
        /// <summary>
        /// å­ä½ç½®
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs
@@ -8,6 +8,9 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// å…¶ä»–设备接口层
    /// </summary>
    public interface IOtherDevice : IDevice
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs
@@ -10,6 +10,9 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// å…¶ä»–设备实现对象
    /// </summary>
    public class OtherDevice : IOtherDevice
    {
        #region Private Member
@@ -42,16 +45,34 @@
        #endregion Private Member
        #region Public Member
        /// <summary>
        /// é€šè®¯å¯¹è±¡
        /// </summary>
        public BaseCommunicator Communicator => _communicator;
        /// <summary>
        /// é€šè®¯åè®®ä¿¡æ¯
        /// </summary>
        public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs;
        /// <summary>
        /// é€šè®¯åè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public string DeviceCode => _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public string DeviceName => _deviceName;
        /// <summary>
        /// è®¾å¤‡é€šè®¯æ˜¯å¦å·²è¿žæŽ¥
        /// </summary>
        public bool IsConnected => Communicator.IsConnected && _isConnected;
        #endregion
@@ -59,9 +80,9 @@
        /// <summary>
        /// æž„造函数
        /// </summary>
        /// <param name="communicator">堆垛机通讯对象</param>
        /// <param name="deviceProDTOs">堆垛机协议信息</param>
        /// <param name="deviceProtocolDetailDTOs">堆垛机协议明细信息</param>
        /// <param name="communicator">设备通讯对象</param>
        /// <param name="deviceProDTOs">设备协议信息</param>
        /// <param name="deviceProtocolDetailDTOs">设备协议明细信息</param>
        /// <param name="deviceCode">设备编号</param>
        /// <param name="deviceName">设备名称</param>
        public OtherDevice(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
@@ -128,12 +149,20 @@
        #endregion
        #region Public Method
        /// <summary>
        /// èŽ·å–è®¾å¤‡çŠ¶æ€
        /// </summary>
        /// <typeparam name="T">状态枚举</typeparam>
        /// <returns></returns>
        public T GetStatus<T>()
        where T : notnull, Enum
        {
            return (T)GetStatus(typeof(T).Name);
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡
        /// </summary>
        public void Dispose()
        {
            _heartStatr = false;
@@ -141,6 +170,13 @@
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// è¯»å–PLC协议地址的数据
        /// </summary>
        /// <typeparam name="TEnum">协议信息的枚举对象信息。</typeparam>
        /// <typeparam name="TResult">读取数据的类型对象信息。</typeparam>
        /// <param name="value">枚举值</param>
        /// <returns>读取到的数据</returns>
        public TResult GetValue<TEnum, TResult>(TEnum value) where TEnum : Enum
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
@@ -163,6 +199,14 @@
            return devicePro == null ? throw new Exception() : (TResult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
        }
        /// <summary>
        /// æ ¹æ®å‚数名称写入堆垛机对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TValue">要写入的数据类型。</typeparam>
        /// <param name="enum">参数名称。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>返回写入成功或失败</returns>
        public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value)
            where TEnum : Enum
            where TValue : notnull
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/JobSetup.cs
@@ -33,6 +33,11 @@
    /// </summary>
    public static class JobSetup
    {
        /// <summary>
        /// è°ƒåº¦æœåŠ¡æ³¨å…¥
        /// </summary>
        /// <param name="services"></param>
        /// <exception cref="ArgumentNullException"></exception>
        public static void AddJobSetup(this IServiceCollection services)
        {
            if (services == null) throw new ArgumentNullException(nameof(services));
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobAutofacModuleRegister.cs
@@ -32,8 +32,14 @@
namespace WIDESEAWCS_QuartzJob.QuartzExtensions
{
    /// <summary>
    /// ä»“储业务层注入
    /// </summary>
    public class QuartzJobAutofacModuleRegister : Autofac.Module
    {
        /// <summary>
        /// ä»“储业务层注入
        /// </summary>
        protected override void Load(ContainerBuilder builder)
        {
            var basePath = AppContext.BaseDirectory;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobDataTableHostedService.cs
@@ -31,6 +31,9 @@
namespace WIDESEAWCS_QuartzJob.QuartzExtensions
{
    /// <summary>
    /// è‡ªåŠ¨å»ºè¡¨
    /// </summary>
    public sealed class QuartzJobDataTableHostedService : IHostedService
    {
        private readonly DBContext _dbContext;
@@ -38,6 +41,9 @@
        private readonly string _webRootPath;
        private readonly IServiceProvider _serviceProvider;
        /// <summary>
        /// è‡ªåŠ¨å»ºè¡¨
        /// </summary>
        public QuartzJobDataTableHostedService(
            IServiceProvider serviceProvider,
            IWebHostEnvironment webHostEnvironment,
@@ -51,12 +57,18 @@
            _dbContext = dbContext;
        }
        /// <summary>
        /// è‡ªåŠ¨å»ºè¡¨
        /// </summary>
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("开始创建定时器调度数据表");
            await DoWork();
        }
        /// <summary>
        /// è‡ªåŠ¨å»ºè¡¨
        /// </summary>
        private async Task DoWork()
        {
            try
@@ -70,6 +82,9 @@
            }
        }
        /// <summary>
        /// è‡ªåŠ¨å»ºè¡¨
        /// </summary>
        public Task StopAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("定时器调度数据表结束");
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobHostedService.cs
@@ -34,6 +34,9 @@
namespace WIDESEAWCS_QuartzJob.QuartzExtensions
{
    /// <summary>
    /// å¯åŠ¨ç¨‹åºè‡ªåŠ¨å¼€å¯è°ƒåº¦æœåŠ¡
    /// </summary>
    public class QuartzJobHostedService : IHostedService
    {
        private readonly ISchedulerCenter _schedulerCenter;
@@ -43,6 +46,9 @@
        private readonly IDeviceProtocolDetailService _deviceProtocolDetailService;
        private readonly QuartzNetExtension _quartzNetExtension;
        /// <summary>
        /// å¯åŠ¨ç¨‹åºè‡ªåŠ¨å¼€å¯è°ƒåº¦æœåŠ¡
        /// </summary>
        public QuartzJobHostedService(ILogger<QuartzJobHostedService> logger, IDeviceInfoService deviceInfoService, IDispatchInfoService dispatchInfoService, ISchedulerCenter schedulerCenter, IDeviceProtocolDetailService deviceProtocolDetailService, QuartzNetExtension quartzNetExtension)
        {
            _logger = logger;
@@ -63,6 +69,9 @@
            await _quartzNetExtension.StartAsync();
        }
        /// <summary>
        /// å¯åŠ¨ç¨‹åºè‡ªåŠ¨å¼€å¯è°ƒåº¦æœåŠ¡
        /// </summary>
        public Task StopAsync(CancellationToken cancellationToken)
        {
            _logger.LogInformation("Stop QuartzJob Service!");
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs
@@ -26,12 +26,20 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// Job注入
    /// </summary>
    public class JobFactory : IJobFactory
    {
        /// <summary>
        /// æ³¨å…¥åå°„获取依赖对象
        /// </summary>
        private readonly IServiceProvider _serviceProvider;
        /// <summary>
        /// Job注入
        /// </summary>
        /// <param name="serviceProvider"></param>
        public JobFactory(IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
@@ -57,6 +65,10 @@
            }
        }
        /// <summary>
        /// Job注入
        /// </summary>
        /// <param name="job"></param>
        public void ReturnJob(IJob job)
        {
            IDisposable? disposable = job as IDisposable;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs
@@ -13,6 +13,9 @@
namespace WIDESEAWCS_QuartzJob.QuartzNet
{
    /// <summary>
    /// å¯åŠ¨ç¨‹åºè‡ªåŠ¨å¼€å¯è°ƒåº¦æœåŠ¡
    /// </summary>
    public class QuartzNetExtension
    {
        private readonly ISchedulerCenter _schedulerCenter;
@@ -20,6 +23,11 @@
        private readonly IDispatchInfoService _dispatchInfoService;
        private readonly IDeviceProtocolDetailService _deviceProtocolDetailService;
        private readonly Storage _storage;
        /// <summary>
        /// å¯åŠ¨ç¨‹åºè‡ªåŠ¨å¼€å¯è°ƒåº¦æœåŠ¡
        /// </summary>
        /// <returns></returns>
        public QuartzNetExtension(IDeviceInfoService deviceInfoService, IDispatchInfoService dispatchInfoService, ISchedulerCenter schedulerCenter, IDeviceProtocolDetailService deviceProtocolDetailService, Storage storage)
        {
            _deviceInfoService = deviceInfoService;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/SchedulerCenterServer.cs
@@ -34,10 +34,18 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// è°ƒåº¦æœåŠ¡å®žçŽ°ç±»
    /// </summary>
    public class SchedulerCenterServer : ISchedulerCenter
    {
        private IScheduler _scheduler;
        private readonly IJobFactory _iocjobFactory;
        /// <summary>
        /// è°ƒåº¦æœåŠ¡å®žçŽ°ç±»
        /// </summary>
        /// <param name="jobFactory"></param>
        public SchedulerCenterServer(IJobFactory jobFactory)
        {
            _iocjobFactory = jobFactory;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceInfoRepository.cs
@@ -26,8 +26,14 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è®¾å¤‡ä¿¡æ¯ä»“储层
    /// </summary>
    public class DeviceInfoRepository : RepositoryBase<Dt_DeviceInfo>, IDeviceInfoRepository
    {
        /// <summary>
        /// è®¾å¤‡ä¿¡æ¯ä»“储层
        /// </summary>
        public DeviceInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolDetailRepository.cs
@@ -26,8 +26,14 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è®¾å¤‡åè®®æ˜Žç»†ä¿¡æ¯ä»“储层
    /// </summary>
    public class DeviceProtocolDetailRepository : RepositoryBase<Dt_DeviceProtocolDetail>, IDeviceProtocolDetailRepository
    {
        /// <summary>
        /// è®¾å¤‡åè®®æ˜Žç»†ä¿¡æ¯ä»“储层
        /// </summary>
        public DeviceProtocolDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolRepository.cs
@@ -26,8 +26,14 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è®¾å¤‡åè®®ä¿¡æ¯ä»“储层
    /// </summary>
    public class DeviceProtocolRepository : RepositoryBase<Dt_DeviceProtocol>, IDeviceProtocolRepository
    {
        /// <summary>
        /// è®¾å¤‡åè®®ä¿¡æ¯ä»“储层
        /// </summary>
        public DeviceProtocolRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DispatchInfoRepository.cs
@@ -26,8 +26,14 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è°ƒåº¦æœåŠ¡é…ç½®ä»“å‚¨å±‚
    /// </summary>
    public class DispatchInfoRepository : RepositoryBase<Dt_DispatchInfo>, IDispatchInfoRepository
    {
        /// <summary>
        /// è°ƒåº¦æœåŠ¡é…ç½®ä»“å‚¨å±‚
        /// </summary>
        public DispatchInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceInfoRepository.cs
@@ -26,6 +26,9 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è®¾å¤‡ä¿¡æ¯ä»“储接口层
    /// </summary>
    public interface IDeviceInfoRepository : IRepository<Dt_DeviceInfo>
    {
    }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolDetailRepository.cs
@@ -26,6 +26,9 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è®¾å¤‡åè®®æ˜Žç»†ä¿¡æ¯ä»“储接口层
    /// </summary>
    public interface IDeviceProtocolDetailRepository : IRepository<Dt_DeviceProtocolDetail>
    {
    }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolRepository.cs
@@ -26,6 +26,9 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è®¾å¤‡åè®®ä¿¡æ¯ä»“储接口层
    /// </summary>
    public interface IDeviceProtocolRepository : IRepository<Dt_DeviceProtocol>
    {
    }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDispatchInfoRepository.cs
@@ -26,6 +26,9 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è°ƒåº¦æœåŠ¡é…ç½®ä»“å‚¨æŽ¥å£å±‚
    /// </summary>
    public interface IDispatchInfoRepository : IRepository<Dt_DispatchInfo>
    {
    }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs
@@ -8,6 +8,9 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è·¯ç”±é…ç½®ä»“储接口层
    /// </summary>
    public interface IRouterRepository : IRepository<Dt_Router>
    {
    }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs
@@ -8,8 +8,14 @@
namespace WIDESEAWCS_QuartzJob.Repository
{
    /// <summary>
    /// è·¯ç”±é…ç½®ä»“储层
    /// </summary>
    public class RouterRepository : RepositoryBase<Dt_Router>, IRouterRepository
    {
        /// <summary>
        /// è·¯ç”±é…ç½®ä»“储层
        /// </summary>
        public RouterRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs
@@ -29,6 +29,11 @@
namespace WIDESEAWCS_QuartzJob.Seed
{
    /// <summary>
    /// æ˜ å°„QuartzJob数据库表
    /// </summary>
    /// <param name="dbContext"></param>
    /// <returns></returns>
    public class QuartzJobCreateDataTabel
    {
        private static string SeedDataFolder = "WIDESEAWCS_DB.DBSeed.Json/{0}.tsv";
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs
@@ -33,16 +33,28 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è®¾å¤‡ä¿¡æ¯ä¸šåС层
    /// </summary>
    public class DeviceInfoService : ServiceBase<Dt_DeviceInfo, IDeviceInfoRepository>, IDeviceInfoService
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IMapper _mapper;
        /// <summary>
        /// è®¾å¤‡ä¿¡æ¯ä¸šåС层
        /// </summary>
        public DeviceInfoService(IDeviceInfoRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper) : base(BaseDal)
        {
            _unitOfWorkManage = unitOfWorkManage;
            _mapper = mapper;
        }
        /// <summary>
        /// æ·»åŠ æ•°æ®
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public override WebResponseContent AddData(SaveModel saveModel)
        {
            return base.AddData(saveModel);
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolDetailService.cs
@@ -31,10 +31,17 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è®¾å¤‡åè®®æ˜Žç»†ä¸šåС层
    /// </summary>
    public class DeviceProtocolDetailService : ServiceBase<Dt_DeviceProtocolDetail, IDeviceProtocolDetailRepository>, IDeviceProtocolDetailService
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IMapper _mapper;
        /// <summary>
        /// è®¾å¤‡åè®®æ˜Žç»†ä¸šåС层
        /// </summary>
        public DeviceProtocolDetailService(IDeviceProtocolDetailRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper) : base(BaseDal)
        {
            _unitOfWorkManage = unitOfWorkManage;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs
@@ -32,9 +32,16 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è®¾å¤‡åè®®ä¿¡æ¯ä¸šåС层
    /// </summary>
    public class DeviceProtocolService : ServiceBase<Dt_DeviceProtocol, IDeviceProtocolRepository>, IDeviceProtocolService
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        /// <summary>
        /// è®¾å¤‡åè®®ä¿¡æ¯ä¸šåС层
        /// </summary>
        public DeviceProtocolService(IDeviceProtocolRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
        {
            _unitOfWorkManage = unitOfWorkManage;
@@ -87,6 +94,11 @@
            }
        }
        /// <summary>
        /// æ·»åŠ æ•°æ®
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public override WebResponseContent AddData(SaveModel saveModel)
        {
            //saveModel.MainData[""]
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs
@@ -31,10 +31,17 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è°ƒåº¦æœåŠ¡é…ç½®ä¸šåŠ¡å±‚
    /// </summary>
    public class DispatchInfoService : ServiceBase<Dt_DispatchInfo, IDispatchInfoRepository>, IDispatchInfoService
    {
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IDeviceInfoRepository _deviceInfoRepository;
        /// <summary>
        /// è°ƒåº¦æœåŠ¡é…ç½®ä¸šåŠ¡å±‚
        /// </summary>
        public DispatchInfoService(IDispatchInfoRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IDeviceInfoRepository deviceInfoRepository) : base(BaseDal)
        {
            _unitOfWorkManage = unitOfWorkManage;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceInfoService.cs
@@ -28,6 +28,9 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è®¾å¤‡ä¿¡æ¯ä¸šåŠ¡æŽ¥å£å±‚
    /// </summary>
    public interface IDeviceInfoService : IService<Dt_DeviceInfo>
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolDetailService.cs
@@ -27,6 +27,9 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è®¾å¤‡åè®®æ˜Žç»†ä¿¡æ¯ä¸šåŠ¡æŽ¥å£å±‚
    /// </summary>
    public interface IDeviceProtocolDetailService : IService<Dt_DeviceProtocolDetail>
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs
@@ -28,6 +28,9 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è®¾å¤‡åè®®ä¿¡æ¯ä¸šåŠ¡æŽ¥å£å±‚
    /// </summary>
    public interface IDeviceProtocolService : IService<Dt_DeviceProtocol>
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs
@@ -26,6 +26,9 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è°ƒåº¦æœåŠ¡é…ç½®ä¸šåŠ¡æŽ¥å£å±‚
    /// </summary>
    public interface IDispatchInfoService : IService<Dt_DispatchInfo>
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs
@@ -10,6 +10,9 @@
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è·¯ç”±é…ç½®ä¸šåŠ¡æŽ¥å£å±‚
    /// </summary>
    public interface IRouterService : IService<Dt_Router>
    {
        /// <summary>
@@ -33,6 +36,12 @@
        /// <returns>匿名对象集合</returns>
        List<object> GetAllWholeRouters();
        /// <summary>
        /// æ·»åŠ è·¯ç”±
        /// </summary>
        /// <param name="routersAddDTOs">添加路由的DTO</param>
        /// <param name="routerType">路由类型</param>
        /// <returns></returns>
        WebResponseContent AddRouters(List<RoutersAddDTO> routersAddDTOs, int routerType);
    }
}
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs
@@ -7,16 +7,27 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
namespace WIDESEAWCS_QuartzJob.Service
{
    /// <summary>
    /// è·¯ç”±é…ç½®ä¸šåС层
    /// </summary>
    public class RouterService : ServiceBase<Dt_Router, IRouterRepository>, IRouterService
    {
        private readonly IDeviceProtocolRepository _deviceProtocolRepository;
        private readonly IDeviceInfoRepository _deviceInfoRepository;
        /// <summary>
        /// è·¯ç”±é…ç½®ä¸šåС层
        /// </summary>
        /// <param name="BaseDal"></param>
        /// <param name="deviceProtocolRepository"></param>
        /// <param name="deviceInfoRepository"></param>
        public RouterService(IRouterRepository BaseDal, IDeviceProtocolRepository deviceProtocolRepository, IDeviceInfoRepository deviceInfoRepository) : base(BaseDal)
        {
            _deviceProtocolRepository = deviceProtocolRepository;
@@ -88,10 +99,10 @@
            try
            {
                // æŸ¥è¯¢æ‰€æœ‰è¿›å…¥è·¯ç”±å™¨çš„位置
                List<string> inRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.In).GroupBy(x => x.StartPosi).Select(x => x.Key).ToList();
                List<string> inRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.In.ObjToInt()).GroupBy(x => x.StartPosi).Select(x => x.Key).ToList();
                // æŸ¥è¯¢æ‰€æœ‰ç¦»å¼€è·¯ç”±å™¨çš„位置
                List<string> outRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.Out).GroupBy(x => x.ChildPosi).Select(x => x.Key).ToList();
                List<string> outRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.Out.ObjToInt()).GroupBy(x => x.ChildPosi).Select(x => x.Key).ToList();
                // å°†è¿›å…¥å’Œç¦»å¼€è·¯ç”±å™¨çš„位置添加到列表中
                positions.AddRange(inRouterPositions);
@@ -135,7 +146,7 @@
                    routes += str;
                }
                // å¦‚果当前路由是入口
                if (item.InOutType == RouterInOutType.In)
                if (item.InOutType == RouterInOutType.In.ObjToInt())
                {
                    // å°†å­è·¯ç”±åè½¬å¹¶æ·»åŠ åˆ°data中
                    List<string> itemRouters = routes.Split(",").Reverse().ToList();
@@ -156,7 +167,7 @@
            return data;
        }
        private string GetPreviousRoutes(string startPosi, List<Dt_Router> allRouters, RouterInOutType routerType)
        private string GetPreviousRoutes(string startPosi, List<Dt_Router> allRouters, int routerType)
        {
            // å®šä¹‰ä¸€ä¸ªç©ºå­—符串routers
            string routers = string.Empty;
@@ -229,7 +240,7 @@
                        ChildPosi = routersAddDTOs[i + 1].PositionCode,
                        ChildPosiDeviceCode = obj.DeviceCode,
                        Depth = 1,
                        InOutType = (RouterInOutType)routerType,
                        InOutType = routerType,
                        NextPosi = routersAddDTOs[i + 1].PositionCode,
                        SrmColumn = string.IsNullOrEmpty(routersAddDTOs[i].SCColumn) ? int.TryParse(routersAddDTOs[i + 1].SCColumn, out int col) ? col : null : int.TryParse(routersAddDTOs[i].SCColumn, out int col2) ? col2 : null,
                        SrmLayer = string.IsNullOrEmpty(routersAddDTOs[i].SCLayer) ? int.TryParse(routersAddDTOs[i + 1].SCLayer, out int lay) ? lay : null : int.TryParse(routersAddDTOs[i].SCLayer, out int lay2) ? lay2 : null,
@@ -257,7 +268,7 @@
                    return content = WebResponseContent.Instance.Error("输入数据起点位置编号与终点位置编号相同");
                }
                // æŸ¥è¯¢æ•°æ®åº“中已有的路由信息
                List<Dt_Router> dt_Routers = BaseDal.QueryData(x => x.InOutType == (RouterInOutType)routerType);
                List<Dt_Router> dt_Routers = BaseDal.QueryData(x => x.InOutType == routerType);
                // ç§»é™¤é‡å¤çš„路由信息
                dt_Routers.ForEach(x =>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs
@@ -7,6 +7,9 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// ç©¿æ¢­è½¦
    /// </summary>
    public interface IShuttleCar : IDevice
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs
@@ -11,6 +11,9 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// ç©¿æ¢­è½¦
    /// </summary>
    [Description("穿梭车")]
    public class ShuttleCar : IShuttleCar
    {
@@ -61,14 +64,31 @@
        /// </summary>
        public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public string DeviceCode => _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public string DeviceName => _deviceName;
        /// <summary>
        /// è®¾å¤‡æ˜¯å¦å·²è¿žæŽ¥
        /// </summary>
        public bool IsConnected => Communicator.IsConnected && _isConnected;
        #endregion
        #region Constructor Function
        /// <summary>
        /// æž„造函数
        /// </summary>
        /// <param name="communicator">设备通讯对象</param>
        /// <param name="deviceProDTOs">设备协议信息</param>
        /// <param name="deviceProtocolDetailDTOs">设备协议明细信息</param>
        /// <param name="deviceCode">设备编号</param>
        /// <param name="deviceName">设备名称</param>
        public ShuttleCar(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
        {
            _communicator = communicator;
@@ -107,7 +127,13 @@
        #endregion
        #region Public Method
        /// <summary>
        /// è¯»å–PLC协议地址的数据
        /// </summary>
        /// <typeparam name="TEnum">协议信息的枚举对象信息。</typeparam>
        /// <typeparam name="TResult">读取数据的类型对象信息。</typeparam>
        /// <param name="value">枚举值</param>
        /// <returns>读取到的数据</returns>
        public TResult GetValue<TEnum, TResult>(TEnum value) where TEnum : Enum
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
@@ -185,6 +211,15 @@
            return devicePro == null ? throw new Exception($"写入数据错误,未在协议信息里面找到参数{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
        }
        /// <summary>
        /// æ ¹æ®å‚数名称写入堆垛机对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TValue">要写入的数据类型。</typeparam>
        /// <param name="enum">参数名称。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>返回写入成功或失败</returns>
        /// <exception cref="Exception"></exception>
        public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value)
            where TEnum : Enum
            where TValue : notnull
@@ -194,6 +229,9 @@
            return devicePro == null ? throw new Exception($"写入数据错误,未在协议信息里面找到参数{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡
        /// </summary>
        public void Dispose()
        {
            _heartStatr = false;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs
@@ -168,6 +168,9 @@
        /// </summary>
        public bool IsEventSubscribed => StackerCraneTaskCompletedEventHandler != null;
        /// <summary>
        /// ä¸Šä¸€æ¬¡ä»»åŠ¡çš„ç±»åž‹
        /// </summary>
        public int? LastTaskType { get; set; } = null;
        #endregion
@@ -468,7 +471,9 @@
            return Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
        }
        // å®žçްIDisposable接口的Dispose方法
        /// <summary>
        /// å®žçްIDisposable接口的Dispose方法
        /// </summary>
        public void Dispose()
        {
            // å°†_heartStatr设置为false
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs
@@ -24,6 +24,9 @@
namespace WIDESEAWCS_QuartzJob.StackerCrane.Enum
{
    /// <summary>
    /// å †åž›æœºçŠ¶æ€æžšä¸¾
    /// </summary>
    public enum StackerCraneStatus
    {
        /// <summary>
@@ -51,6 +54,9 @@
        Unkonw
    }
    /// <summary>
    /// å †åž›æœºæ‰‹è‡ªåŠ¨çŠ¶æ€æžšä¸¾
    /// </summary>
    public enum StackerCraneAutoStatus
    {
        /// <summary>
@@ -84,6 +90,9 @@
        Unkonw
    }
    /// <summary>
    /// å †åž›æœºå·¥ä½œçŠ¶æ€æžšä¸¾
    /// </summary>
    public enum StackerCraneWorkStatus
    {
        /// <summary>
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs
@@ -35,7 +35,7 @@
    public interface IStackerCrane : IDevice
    {
        /// <summary>
        /// ä¸Šä¸€æ¬¡æ‰§è¡Œçš„任务
        /// ä¸Šä¸€æ¬¡æ‰§è¡Œçš„任务号
        /// </summary>
        int LastTaskNum { get; }
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs
@@ -54,24 +54,54 @@
        #endregion Private Member
        #region Public Member
        /// <summary>
        /// é€šè®¯å¯¹è±¡
        /// </summary>
        public BaseCommunicator Communicator => _communicator;
        /// <summary>
        /// é€šè®¯åè®®ä¿¡æ¯
        /// </summary>
        public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs;
        /// <summary>
        /// é€šè®¯åè®®æ˜Žç»†ä¿¡æ¯
        /// </summary>
        public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
        /// <summary>
        /// ä¸Šä¸€æ¬¡æ‰§è¡Œçš„任务号
        /// </summary>
        public int LastTaskNum => _lastTaskNum;
        /// <summary>
        /// å½“前正在执行的任务号
        /// </summary>
        public int CurrentTaskNum => GetCurrentTaskNum();
        /// <summary>
        /// ä¸Šä¸€æ¬¡æ‰§è¡Œçš„任务类型
        /// </summary>
        public int? LastTaskType { get; set; } = null;
        /// <summary>
        /// è®¾å¤‡ç¼–号
        /// </summary>
        public string DeviceCode => _deviceCode;
        /// <summary>
        /// è®¾å¤‡åç§°
        /// </summary>
        public string DeviceName => _deviceName;
        /// <summary>
        /// è®¾å¤‡æ˜¯å¦å·²è¿žæŽ¥
        /// </summary>
        public bool IsConnected => Communicator.IsConnected && _isConnected;
        /// <summary>
        /// å †åž›æœºä»»åС命令
        /// </summary>
        public object StackerCraneTaskCommand { get; set; }
        #endregion
@@ -154,11 +184,17 @@
        #endregion
        #region Public Method
        /// <summary>
        /// èŽ·å–å †åž›æœºçŠ¶æ€
        /// </summary>
        public T GetStackerCraneStatus<T>() where T : notnull, Enum
        {
            return (T)GetStatus(typeof(T).Name);
        }
        /// <summary>
        /// é‡Šæ”¾å¯¹è±¡
        /// </summary>
        public void Dispose()
        {
            _heartStatr = false;
@@ -166,6 +202,14 @@
            GC.SuppressFinalize(this);
        }
        /// <summary>
        /// æ ¹æ®å‚数名称读取堆垛机对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TResult">读取结果的返回值类型。</typeparam>
        /// <param name="value">参数名称。</param>
        /// <returns>返回读取到的数据。</returns>
        /// <exception cref="Exception"></exception>
        public TResult GetValue<TEnum, TResult>(TEnum value) where TEnum : Enum
        {
            if (!IsConnected) throw new Exception($"通讯连接错误,请检查网络");
@@ -173,11 +217,19 @@
            return devicePro == null ? throw new Exception($"读取数据错误,未在协议信息里面找到参数{value.ToString()}") : (TResult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
        }
        /// <summary>
        /// å¿ƒè·³
        /// </summary>
        public void Heartbeat()
        {
        }
        /// <summary>
        /// å‘送任务命令
        /// </summary>
        /// <param name="command">任务命令</param>
        /// <returns></returns>
        public bool SendCommand<T>(T command) where T : IDataTransfer, new()
        {
            if (Communicator is SiemensS7)
@@ -202,6 +254,15 @@
            }
        }
        /// <summary>
        /// æ ¹æ®å‚数名称写入堆垛机对应的数据。
        /// </summary>
        /// <typeparam name="TEnum">参数名称枚举类型。</typeparam>
        /// <typeparam name="TValue">要写入的数据类型。</typeparam>
        /// <param name="enum">参数名称。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>返回写入成功或失败</returns>
        /// <exception cref="Exception"></exception>
        public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value)
            where TEnum : Enum
            where TValue : notnull
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/StackerCraneTaskCompletedEventArgs.cs
@@ -23,6 +23,9 @@
namespace WIDESEAWCS_QuartzJob.StackerCrane
{
    /// <summary>
    /// å †åž›æœºä»»åŠ¡å®Œæˆæ—¶é—´å‚æ•°
    /// </summary>
    public class StackerCraneTaskCompletedEventArgs : EventArgs
    {
        #region <Private Member>
@@ -30,10 +33,17 @@
        #endregion <Private Member>
        #region <Public Menber>
        /// <summary>
        /// ä»»åŠ¡å·
        /// </summary>
        public int TaskNum { get { return _taskNum; } }
        #endregion <Public Menber>
        #region <Constructor function>
        /// <summary>
        /// æž„造函数
        /// </summary>
        /// <param name="taskNum"></param>
        public StackerCraneTaskCompletedEventArgs(int taskNum)
        {
            _taskNum = taskNum;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
@@ -18,27 +18,54 @@
namespace WIDESEAWCS_QuartzJob
{
    /// <summary>
    /// é™æ€å˜è„¸å­˜å‚¨åŒºï¼Œå¯ä½¿ç”¨é™æ€å˜é‡ï¼Œä¹Ÿå¯æ³¨å…¥ä½¿ç”¨
    /// </summary>
    public class Storage
    {
        /// <summary>
        /// å·²è¿žæŽ¥è®¾å¤‡å¯¹è±¡é›†åˆ
        /// </summary>
        public static List<IDevice> Devices = new List<IDevice>();
        /// <summary>
        /// è®¾å¤‡å¯¹è±¡
        /// </summary>
        public List<IDevice> Pro_Devices { get; set; }
        /// <summary>
        /// æž„造函数
        /// </summary>
        public Storage()
        {
            Pro_Devices = new List<IDevice>();
        }
        /// <summary>
        /// èŽ·å–è®¾å¤‡
        /// </summary>
        /// <param name="deviceCode"></param>
        /// <returns></returns>
        public IDevice? GetDevice(string deviceCode)
        {
            return Pro_Devices.FirstOrDefault(x => x.DeviceCode == deviceCode);
        }
        /// <summary>
        /// èŽ·å–è®¾å¤‡
        /// </summary>
        /// <param name="deviceCodes"></param>
        /// <returns></returns>
        public List<IDevice> GetDevices(List<string> deviceCodes)
        {
            return Pro_Devices.Where(x => deviceCodes.Contains(x.DeviceCode)).ToList();
        }
        /// <summary>
        /// èŽ·å–é€šè®¯å¯¹è±¡
        /// </summary>
        /// <param name="deviceCode"></param>
        /// <returns></returns>
        public BaseCommunicator? GetCommunicator(string deviceCode)
        {
            return Devices.FirstOrDefault(x => x.DeviceCode == deviceCode)?.Communicator;
WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
@@ -10,8 +10,18 @@
            ç”±äºŽ2.1.0版本更新,会导致有一定的问题。
            åœ¨Dt_DeviceInfo表中添加DispatchId可空列,用来配置对应Dt_DispatchInfo中的数据。
            æ›´æ–°æ—¶è¯·æ³¨æ„ï¼Œå¦‚需更新,请及时更新数据库结构和数据。
            20241223
            è·¯ç”±è¡¨æ›´æ–°
            20250102
            æ·»åŠ JobBase中记录错误日志方法重载版本
            20250102-002
            æ·»åŠ æ³¨é‡Š
        </Description>
        <Version>3.0.0</Version>
        <Version>3.0.3</Version>
        <GenerateDocumentationFile>true</GenerateDocumentationFile>
    </PropertyGroup>
    <ItemGroup>