已删除7个文件
已修改31个文件
已添加21个文件
| | |
| | | import VolMenu from "@/components/basic/VolElementMenu.vue"; |
| | | import Message from "./index/Message.vue"; |
| | | import MessageConfig from "./index/MessageConfig.js"; |
| | | var imgUrl = require("@/assets/imgs/wms_x.png"); |
| | | var imgUrl = require("@/assets/imgs/wcs_logo.png"); |
| | | var $this; |
| | | var $interval; |
| | | var $indexDate; |
| | |
| | | <template> |
| | | <div class="login-container"> |
| | | <div class="project-name">WIDESEA_WMS</div> |
| | | <div class="project-name">WIDESEA_WCS</div> |
| | | <div class="login-form"> |
| | | <div class="form-user" @keypress="loginPress"> |
| | | <div class="login-text"> |
| | |
| | | *ä¸å¡è¯·å¨@/extension/system/Sys_Log.jsæ¤å¤ç¼å |
| | | --> |
| | | <template> |
| | | <view-grid ref="grid" |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend"> |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: 'Id', |
| | | key: "Id", |
| | | footer: "Foots", |
| | | cnName: 'ç³»ç»æ¥å¿', |
| | | name: 'Sys_Log', |
| | | cnName: "ç³»ç»æ¥å¿", |
| | | name: "Sys_Log", |
| | | url: "/Sys_Log/", |
| | | sortName: "Id" |
| | | sortName: "Id", |
| | | }); |
| | | const editFormFields = ref({}); |
| | | const editFormOptions = ref([]); |
| | | const searchFormFields = ref({"BeginDate":"","Url":"","LogType":[],"Success":[],"UserIP":"","ServiceIP":"","Role_Id":""}); |
| | | const searchFormOptions = ref([[{"title":"请æ±å°å","field":"Url","type":"text"},{"title":"ç¨æ·IP","field":"UserIP","type":"text"},{"title":"æå¡å¨IP","field":"ServiceIP","type":"text"}],[{"title":"å¼å§æ¶é´","field":"BeginDate","type":"datetime"},{"dataKey":"restatus","data":[],"title":"ååºç¶æ","field":"Success","type":"selectList"},{"dataKey":"roles","data":[],"title":"è§è²ID","field":"Role_Id","type":"select"}],[{"dataKey":"log","data":[],"title":"æ¥å¿ç±»å","field":"LogType","colSize":12,"type":"checkbox"}]]); |
| | | const columns = ref([{field:'Id',title:'Id',type:'int',width:90,hidden:true,readonly:true,require:true,align:'left'}, |
| | | {field:'BeginDate',title:'å¼å§æ¶é´',type:'datetime',width:140,align:'left',sortable:true}, |
| | | {field:'UserName',title:'ç¨æ·åç§°',type:'string',width:90,align:'left'}, |
| | | {field:'Url',title:'请æ±å°å',type:'string',width:110,align:'left'}, |
| | | {field:'LogType',title:'æ¥å¿ç±»å',type:'string',bind:{ key:'log',data:[]},width:80,align:'left'}, |
| | | {field:'Success',title:'ååºç¶æ',type:'int',bind:{ key:'restatus',data:[]},width:80,align:'left'}, |
| | | {field:'ElapsedTime',title:'æ¶é¿',type:'int',width:60,align:'left'}, |
| | | {field:'RequestParameter',title:'请æ±åæ°',type:'string',width:70,align:'left'}, |
| | | {field:'ResponseParameter',title:'ååºåæ°',type:'string',width:70,align:'left'}, |
| | | {field:'ExceptionInfo',title:'å¼å¸¸ä¿¡æ¯',type:'string',width:70,align:'left'}, |
| | | {field:'UserIP',title:'ç¨æ·IP',type:'string',width:90,align:'left'}, |
| | | {field:'ServiceIP',title:'æå¡å¨IP',type:'string',width:90,hidden:true,align:'left'}, |
| | | {field:'BrowserType',title:'æµè§å¨ç±»å',type:'string',width:90,align:'left'}, |
| | | {field:'User_Id',title:'ç¨æ·ID',type:'int',width:90,hidden:true,align:'left'}, |
| | | {field:'Role_Id',title:'è§è²ID',type:'int',bind:{ key:'roles',data:[]},width:90,hidden:true,align:'left'}, |
| | | {field:'EndDate',title:'ç»ææ¶é´',type:'datetime',width:150,hidden:true,align:'left',sortable:true}]); |
| | | const searchFormFields = ref({ |
| | | BeginDate: "", |
| | | Url: "", |
| | | LogType: [], |
| | | Success: [], |
| | | UserIP: "", |
| | | ServiceIP: "", |
| | | Role_Id: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "请æ±å°å", field: "url", type: "text" }, |
| | | { title: "ç¨æ·IP", field: "userIP", type: "text" }, |
| | | { title: "æå¡å¨IP", field: "serviceIP", type: "text" }, |
| | | ], |
| | | [ |
| | | { title: "å¼å§æ¶é´", field: "beginDate", type: "datetime" }, |
| | | { |
| | | dataKey: "restatus", |
| | | data: [], |
| | | title: "ååºç¶æ", |
| | | field: "success", |
| | | type: "selectList", |
| | | }, |
| | | { |
| | | dataKey: "roles", |
| | | data: [], |
| | | title: "è§è²ID", |
| | | field: "role_Id", |
| | | type: "select", |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | dataKey: "log", |
| | | data: [], |
| | | title: "æ¥å¿ç±»å", |
| | | field: "logType", |
| | | colSize: 12, |
| | | type: "checkbox", |
| | | }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "Id", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "beginDate", |
| | | title: "å¼å§æ¶é´", |
| | | type: "datetime", |
| | | width: 140, |
| | | align: "left", |
| | | sortable: true, |
| | | }, |
| | | { |
| | | field: "userName", |
| | | title: "ç¨æ·åç§°", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "url", |
| | | title: "请æ±å°å", |
| | | type: "string", |
| | | width: 110, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "logType", |
| | | title: "æ¥å¿ç±»å", |
| | | type: "string", |
| | | bind: { key: "log", data: [] }, |
| | | width: 80, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "success", |
| | | title: "ååºç¶æ", |
| | | type: "int", |
| | | bind: { key: "restatus", data: [] }, |
| | | width: 80, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "elapsedTime", |
| | | title: "æ¶é¿", |
| | | type: "int", |
| | | width: 60, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "requestParameter", |
| | | title: "请æ±åæ°", |
| | | type: "string", |
| | | width: 70, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "responseParameter", |
| | | title: "ååºåæ°", |
| | | type: "string", |
| | | width: 70, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "exceptionInfo", |
| | | title: "å¼å¸¸ä¿¡æ¯", |
| | | type: "string", |
| | | width: 70, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "userIP", |
| | | title: "ç¨æ·IP", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "serviceIP", |
| | | title: "æå¡å¨IP", |
| | | type: "string", |
| | | width: 90, |
| | | hidden: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "browserType", |
| | | title: "æµè§å¨ç±»å", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "userId", |
| | | title: "ç¨æ·ID", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "roleId", |
| | | title: "è§è²ID", |
| | | type: "int", |
| | | bind: { key: "roles", data: [] }, |
| | | width: 90, |
| | | hidden: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "endDate", |
| | | title: "ç»ææ¶é´", |
| | | type: "datetime", |
| | | width: 150, |
| | | hidden: true, |
| | | align: "left", |
| | | sortable: true, |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "#detailCnName", |
| | | columns: [], |
| | | sortName: "", |
| | | key: "" |
| | | key: "", |
| | | }); |
| | | return { |
| | | table, |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!-- |
| | | |
| | | IIS configuration sections. |
| | |
| | | |
| | | --> |
| | | <configuration> |
| | | |
| | | <!-- |
| | | |
| | | The <configSections> section controls the registration of sections. |
| | |
| | | <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
| | | <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> |
| | | </sectionGroup> |
| | | |
| | | <sectionGroup name="system.webServer"> |
| | | <section name="asp" overrideModeDefault="Deny" /> |
| | | <section name="caching" overrideModeDefault="Allow" /> |
| | |
| | | <section name="rewriteMaps" overrideModeDefault="Allow" /> |
| | | </sectionGroup> |
| | | <section name="webSocket" overrideModeDefault="Deny" /> |
| | | <section name="aspNetCore" overrideModeDefault="Allow" /></sectionGroup> |
| | | <section name="aspNetCore" overrideModeDefault="Allow" /> |
| | | </sectionGroup> |
| | | </configSections> |
| | | |
| | | <configProtectedData> |
| | | <providers> |
| | | <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" /> |
| | |
| | | <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" /> |
| | | </providers> |
| | | </configProtectedData> |
| | | |
| | | <system.applicationHost> |
| | | |
| | | <applicationPools> |
| | | <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
| | | <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
| | | <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
| | | <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> |
| | | <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" /> |
| | | <add name="WIDESEAWCS_Server AppPool" managedRuntimeVersion="" /> |
| | | <applicationPoolDefaults managedRuntimeVersion="v4.0"> |
| | | <processModel loadUserProfile="true" setProfileEnvironment="false" /> |
| | | </applicationPoolDefaults> |
| | | </applicationPools> |
| | | |
| | | <!-- |
| | | |
| | | The <listenerAdapters> section defines the protocols with which the |
| | |
| | | <listenerAdapters> |
| | | <add name="http" /> |
| | | </listenerAdapters> |
| | | |
| | | <sites> |
| | | <site name="WebSite1" id="1" serverAutoStart="true"> |
| | | <application path="/"> |
| | |
| | | </application> |
| | | <bindings> |
| | | <binding protocol="http" bindingInformation=":8080:localhost" /> |
| | | </bindings> |
| | | </site> |
| | | <site name="WIDESEAWCS_Server" id="2"> |
| | | <application path="/" applicationPool="WIDESEAWCS_Server AppPool"> |
| | | <virtualDirectory path="/" physicalPath="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Server" /> |
| | | </application> |
| | | <bindings> |
| | | <binding protocol="http" bindingInformation="*:27002:localhost" /> |
| | | </bindings> |
| | | </site> |
| | | <siteDefaults> |
| | |
| | | <applicationDefaults applicationPool="Clr4IntegratedAppPool" /> |
| | | <virtualDirectoryDefaults allowSubDirConfig="true" /> |
| | | </sites> |
| | | |
| | | <webLimits /> |
| | | |
| | | </system.applicationHost> |
| | | |
| | | <system.webServer> |
| | | |
| | | <serverRuntime /> |
| | | |
| | | <asp scriptErrorSentToBrowser="true"> |
| | | <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" /> |
| | | <limits /> |
| | | </asp> |
| | | |
| | | <caching enabled="true" enableKernelCache="true"> |
| | | </caching> |
| | | |
| | | <caching enabled="true" enableKernelCache="true"></caching> |
| | | <cgi /> |
| | | |
| | | <defaultDocument enabled="true"> |
| | | <files> |
| | | <add value="Default.htm" /> |
| | |
| | | <add value="default.aspx" /> |
| | | </files> |
| | | </defaultDocument> |
| | | |
| | | <directoryBrowse enabled="false" /> |
| | | |
| | | <fastCgi /> |
| | | |
| | | <!-- |
| | | |
| | | The <globalModules> section defines all native-code modules. |
| | |
| | | <add name="AspNetCoreModule" image="%IIS_BIN%\aspnetcore.dll" /> |
| | | <add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" /> |
| | | </globalModules> |
| | | |
| | | <httpCompression directory="%TEMP%"> |
| | | <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" /> |
| | | <dynamicTypes> |
| | |
| | | <add mimeType="*/*" enabled="false" /> |
| | | </staticTypes> |
| | | </httpCompression> |
| | | |
| | | <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> |
| | | <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" /> |
| | | <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" /> |
| | |
| | | <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" /> |
| | | <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" /> |
| | | </httpErrors> |
| | | |
| | | <httpLogging dontLog="false" /> |
| | | |
| | | <httpProtocol> |
| | | <customHeaders> |
| | | <clear /> |
| | |
| | | <clear /> |
| | | </redirectHeaders> |
| | | </httpProtocol> |
| | | |
| | | <httpRedirect enabled="false" /> |
| | | |
| | | <httpTracing /> |
| | | |
| | | <isapiFilters> |
| | | <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" /> |
| | | <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" /> |
| | |
| | | <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" /> |
| | | <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" /> |
| | | </isapiFilters> |
| | | |
| | | <odbcLogging /> |
| | | |
| | | <security> |
| | | |
| | | <access sslFlags="None" /> |
| | | |
| | | <applicationDependencies> |
| | | <application name="Active Server Pages" groupId="ASP" /> |
| | | </applicationDependencies> |
| | | |
| | | <authentication> |
| | | |
| | | <anonymousAuthentication enabled="true" userName="" /> |
| | | |
| | | <basicAuthentication enabled="false" /> |
| | | |
| | | <clientCertificateMappingAuthentication enabled="false" /> |
| | | |
| | | <digestAuthentication enabled="false" /> |
| | | |
| | | <iisClientCertificateMappingAuthentication enabled="false"> |
| | | </iisClientCertificateMappingAuthentication> |
| | | |
| | | <iisClientCertificateMappingAuthentication enabled="false"></iisClientCertificateMappingAuthentication> |
| | | <windowsAuthentication enabled="false"> |
| | | <providers> |
| | | <add value="Negotiate" /> |
| | | <add value="NTLM" /> |
| | | </providers> |
| | | </windowsAuthentication> |
| | | |
| | | </authentication> |
| | | |
| | | <authorization> |
| | | <add accessType="Allow" users="*" /> |
| | | </authorization> |
| | | |
| | | <ipSecurity allowUnlisted="true" /> |
| | | |
| | | <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true"> |
| | | <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> |
| | | <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> |
| | | <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> |
| | | <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> |
| | | </isapiCgiRestriction> |
| | | |
| | | <requestFiltering> |
| | | <fileExtensions allowUnlisted="true" applyToWebDAV="true"> |
| | | <add fileExtension=".asa" allowed="false" /> |
| | |
| | | <add segment="App_Browsers" /> |
| | | </hiddenSegments> |
| | | </requestFiltering> |
| | | |
| | | </security> |
| | | |
| | | <serverSideInclude ssiExecDisable="false" /> |
| | | |
| | | <staticContent lockAttributes="isDocFooterFileName"> |
| | | <mimeMap fileExtension=".323" mimeType="text/h323" /> |
| | | <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" /> |
| | |
| | | <mimeMap fileExtension=".z" mimeType="application/x-compress" /> |
| | | <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" /> |
| | | </staticContent> |
| | | |
| | | <tracing> |
| | | |
| | | <traceFailedRequests> |
| | | <add path="*"> |
| | | <traceAreas> |
| | |
| | | <failureDefinitions statusCodes="200-999" /> |
| | | </add> |
| | | </traceFailedRequests> |
| | | |
| | | <traceProviderDefinitions> |
| | | <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"> |
| | | <areas> |
| | |
| | | </areas> |
| | | </add> |
| | | </traceProviderDefinitions> |
| | | |
| | | </tracing> |
| | | |
| | | <urlCompression /> |
| | | |
| | | <validation /> |
| | | <webdav> |
| | | <globalSettings> |
| | |
| | | <lockStores> |
| | | <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" /> |
| | | </lockStores> |
| | | |
| | | </globalSettings> |
| | | <authoring> |
| | | <locks enabled="true" lockStore="webdav_simple_lock" /> |
| | |
| | | </webdav> |
| | | <webSocket /> |
| | | <applicationInitialization /> |
| | | |
| | | </system.webServer> |
| | | <location path="" overrideMode="Allow"> |
| | | <system.webServer> |
| | |
| | | </handlers> |
| | | </system.webServer> |
| | | </location> |
| | | <location path="WIDESEAWCS_Server" inheritInChildApplications="false"> |
| | | <system.webServer> |
| | | <modules> |
| | | <remove name="WebMatrixSupportModule" /> |
| | | </modules> |
| | | <handlers> |
| | | <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> |
| | | </handlers> |
| | | <aspNetCore processPath="%LAUNCHER_PATH%" stdoutLogEnabled="false" hostingModel="InProcess" startupTimeLimit="3600" requestTimeout="23:00:00" /> |
| | | <httpCompression> |
| | | <dynamicTypes> |
| | | <add mimeType="text/event-stream" enabled="false" /> |
| | | </dynamicTypes> |
| | | </httpCompression> |
| | | </system.webServer> |
| | | </location> |
| | | </configuration> |
| | |
| | | "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\", |
| | | "Documents": [ |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userservice.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:{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\\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:{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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\appsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\appsettings.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:{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:{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\\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:{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:{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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\extensions\\swaggersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\swaggersetup.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\\helper\\objectextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\objectextension.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:{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:{5777BDEC-4726-4425-85F2-A090524F692D}|WIDESEAWCS_SystemRepository\\WIDESEAWCS_SystemRepository.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemrepository\\sys_dictionaryrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{5777BDEC-4726-4425-85F2-A090524F692D}|WIDESEAWCS_SystemRepository\\WIDESEAWCS_SystemRepository.csproj|solutionrelative:wideseawcs_systemrepository\\sys_dictionaryrepository.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\\caches\\memorycacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\memorycacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | }, |
| | | { |
| | | "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userservice.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_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_dictionaryservice.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\\caches\\icacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\icacheservice.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_dictionarylist.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_dictionarylist.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\\attributes\\cacheattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\cacheattribute.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_usercontroller.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_usercontroller.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:{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\\attributes\\modelvalidateattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\modelvalidateattribute.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:{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:{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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\utilities\\modelvalidate.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\utilities\\modelvalidate.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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\apidoc\\htmlhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\apidoc\\htmlhelper.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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\apidoc\\bytehelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\apidoc\\bytehelper.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:{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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.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\\custommodel\\siemenscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\siemenscustommodel.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\\custommodel\\melseccustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\melseccustommodel.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\\custommodel\\modbuscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\modbuscustommodel.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\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.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:{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:{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:{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\\wideseawcs_server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs_server.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\\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\\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\\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\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}", |
| | | "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}" |
| | | "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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\authorization\\authorizationsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\authorization\\authorizationsetup.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\\middlewares\\swaggermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", |
| | | "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\swaggermiddleware.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}", |
| | | "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" |
| | | } |
| | | ], |
| | | "DocumentGroupContainers": [ |
| | |
| | | "DocumentGroups": [ |
| | | { |
| | | "DockedWidth": 200, |
| | | "SelectedChildIndex": 7, |
| | | "SelectedChildIndex": 4, |
| | | "Children": [ |
| | | { |
| | | "$type": "Bookmark", |
| | |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T07:54:55.42Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 2, |
| | | "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": "AQIAAMoBAAAAAAAAAIA+wAoCAAAMAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T07:53:37.074Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T07:53:36.355Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 0, |
| | | "Title": "Sys_UserService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "ViewState": "AQIAADwAAAAAAAAAAAAIwBsAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T07:04:27.837Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 11, |
| | | "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", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs", |
| | | "ViewState": "AQIAABsAAAAAAAAAAAAvwF4AAAARAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T06:21:25.509Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 16, |
| | | "Title": "Sys_DictionaryList.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_DictionaryList.cs", |
| | | "ViewState": "AQIAAAYAAAAAAAAAAAAAAAwAAAARAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T06:15:27.12Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 17, |
| | | "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", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs", |
| | | "ViewState": "AQIAAC0AAAAAAAAAAAAIwEcAAAAhAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T06:10:03.91Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "Title": "Sys_DictionaryService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "ViewState": "AQIAAEUAAAAAAAAAAAAEwG0AAAAMAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T05:54:44.964Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "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": "AQIAAGUAAAAAAAAAAAAMwIUAAAARAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-22T04:27:55.148Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "Sys_DictionaryRepository.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_SystemRepository\\Sys_DictionaryRepository.cs", |
| | | "ViewState": "AQIAAAMAAAAAAAAAAAAlwBsAAABHAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T03:06:06.908Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "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": "AQIAABQAAAAAAAAAAAAwwDsAAAAhAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T07:49:25.394Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "Title": "AppSettings.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\AppSettings.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\AppSettings.cs", |
| | | "ViewState": "AQIAACIAAAAAAAAAAAAewE4AAAAMAAAA", |
| | | "ViewState": "AQIAADsAAAAAAAAAAAAYwAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T03:05:35.882Z", |
| | | "WhenOpened": "2024-10-29T07:35:41.197Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "DocumentIndex": 2, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAGMAAAAFAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T07:32:56.232Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 3, |
| | | "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": "AQIAACcAAAAAAAAAAAAAAD0AAAACAAAA", |
| | | "ViewState": "AQIAAFoAAAAAAAAAAAAAAHYAAAAfAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-22T01:09:37.829Z", |
| | | "WhenOpened": "2024-10-29T07:30:53.392Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 5, |
| | | "Title": "ObjectExtension.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAABgAAAAMAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T07:27:01.38Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 4, |
| | | "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": "AQIAAPEAAAAAAAAAAAAqwAQBAAAfAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T07:26:42.953Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 7, |
| | | "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": "AQIAABoAAAAAAAAAAAAWwDQAAAAcAAAA", |
| | | "Title": "Sys_DictionaryService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs", |
| | | "ViewState": "AQIAAB4AAAAAAAAAAAAewCoAAAAXAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T07:51:52.135Z", |
| | | "WhenOpened": "2024-10-29T07:02:40.902Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 6, |
| | | "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", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs", |
| | | "ViewState": "AQIAAC0AAAAAAAAAAADgvysAAABBAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T07:01:59.572Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 9, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAABsAAAASAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", |
| | | "WhenOpened": "2024-10-25T07:50:40.066Z", |
| | | "Title": "Sys_UserService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", |
| | | "ViewState": "AQIAACoAAAAAAAAAAAArwEMAAAAXAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T07:01:10.75Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "ISys_DictionaryService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAAAfAAAA", |
| | | "DocumentIndex": 11, |
| | | "Title": "CacheAttribute.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAA5AAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T06:21:29.957Z", |
| | | "WhenOpened": "2024-10-29T06:44:12.196Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 1, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAJMAAAAJAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T06:42:33.623Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 10, |
| | | "Title": "SwaggerSetup.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SwaggerSetup.cs", |
| | | "ViewState": "AQIAAAkAAAAAAAAAAAAAADoAAAA3AAAA", |
| | | "Title": "ICacheService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\ICacheService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\ICacheService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\ICacheService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\ICacheService.cs", |
| | | "ViewState": "AQIAAAcAAAAAAAAAAAAhwB8AAAAIAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-21T07:07:09.329Z", |
| | | "WhenOpened": "2024-10-29T06:34:56.04Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 8, |
| | | "Title": "MemoryCacheService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs", |
| | | "ViewState": "AQIAAE0AAAAAAAAAAAAewDoAAABpAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T06:34:53.123Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 15, |
| | | "Title": "ModelValidate.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\ModelValidate.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Utilities\\ModelValidate.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\ModelValidate.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Utilities\\ModelValidate.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAMUAAAAJAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T05:49:56.779Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 13, |
| | | "Title": "ModelValidateAttribute.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", |
| | | "ViewState": "AQIAAAIAAAAAAAAAAAAiwBMAAAA5AAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T05:49:32.594Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 16, |
| | | "Title": "HtmlHelper.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs", |
| | | "ViewState": "AQIAABsAAAAAAAAAAAAywAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T05:47:49.063Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 17, |
| | | "Title": "ByteHelper.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T05:47:48.38Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 12, |
| | | "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": "AQIAAAkAAAAAAAAAAAAAAEkAAAARAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T05:36:07.083Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 14, |
| | | "Title": "Sys_RoleService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs", |
| | | "ViewState": "AQIAAKQAAAAAAAAAAAAiwMIAAAAuAAAA", |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T06:39:35.327Z", |
| | | "WhenOpened": "2024-10-29T05:36:05.934Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 18, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAAcAAABOAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", |
| | | "WhenOpened": "2024-10-25T02:07:42.031Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 20, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAAYAAAAiAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", |
| | | "WhenOpened": "2024-10-25T02:06:53.829Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 32, |
| | | "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": "AQIAALQAAAAAAAAAAAAlwNYAAAANAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:38:52.718Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 24, |
| | | "Title": "ConveyorLineTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAArAAAA", |
| | | "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": "AQIAAAAAAAAAAAAAAAAAACIAAAAFAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:26:14.425Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 21, |
| | | "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": "AQIAACwAAAAAAAAAAADgv0MAAAAYAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:26:48.017Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "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": "AQIAAAgBAAAAAAAAAAAxwJkBAAAqAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:14:02.746Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 29, |
| | | "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": "AQIAAOAAAAAAAAAAAIA0wB4BAAAMAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:41:55.119Z" |
| | | "WhenOpened": "2024-10-29T03:06:58.382Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 23, |
| | | "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": "AQIAABkAAAAAAAAAAAAAAEAAAAA3AAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:57:36.474Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 22, |
| | | "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": "AQIAAHQAAAAAAAAAAAAgwIkAAAAYAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:42:20.676Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 25, |
| | | "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": "AQIAADoAAAAAAAAAAAArwFsAAAA7AAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:45:38.017Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 27, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:57:12.258Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 26, |
| | | "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": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:57:12.985Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 34, |
| | | "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": "AQIAABkAAAAAAAAAAAAuwPgAAAAFAAAA", |
| | | "ViewState": "AQIAAK4AAAAAAAAAAAAYwPcAAAAaAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:23:25.685Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 28, |
| | | "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": "AQIAABQAAAAAAAAAAAAAAMcAAAA+AAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T00:57:10.455Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 33, |
| | | "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": "AQIAAH4AAAAAAAAAAAArwKMAAAANAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:42:49.769Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 30, |
| | | "Title": "CommonStackerCraneJob.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs", |
| | | "ViewState": "AQIAABIAAAAAAAAAAAAAAC8AAAAiAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-25T01:46:27.984Z" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 31, |
| | | "Title": "WIDESEAWCS_Server.csproj", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj", |
| | | "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAAnAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", |
| | | "WhenOpened": "2024-10-23T02:33:53.566Z", |
| | | "WhenOpened": "2024-10-29T03:05:32.353Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 35, |
| | | "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": "AQIAAGYAAAAAAAAAAAAAALQAAAAQAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|", |
| | | "WhenOpened": "2024-10-22T01:18:53.662Z" |
| | | "DocumentIndex": 22, |
| | | "Title": "ConveyorLineTaskCommand.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAA4AAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T03:05:29.571Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 36, |
| | | "Title": "AuthorizationSetup.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Authorization\\AuthorizationSetup.cs", |
| | | "ViewState": "AQIAABAAAAAAAAAAAAAWwBsAAAAwAAAA", |
| | | "DocumentIndex": 21, |
| | | "Title": "ModbusCustomModel.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs", |
| | | "ViewState": "AQIAABAAAAAAAAAAAAAYwBoAAAAIAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-22T01:09:46.313Z" |
| | | "WhenOpened": "2024-10-29T03:04:51.117Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 37, |
| | | "Title": "SwaggerMiddleware.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\SwaggerMiddleware.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", |
| | | "DocumentIndex": 20, |
| | | "Title": "MelsecCustomModel.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs", |
| | | "ViewState": "AQIAAAAAAAAAAAAAAAAAAFEAAAAIAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-22T01:09:28.175Z", |
| | | "WhenOpened": "2024-10-29T03:03:23.075Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 19, |
| | | "Title": "SiemensCustomModel.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs", |
| | | "ViewState": "AQIAAAsAAAAA3JKSmhIewD8AAAAIAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T03:02:08.422Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 18, |
| | | "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": "AQIAADMAAAAAAAAAAAAUwE0CAAAAAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T02:59:00.959Z", |
| | | "EditorCaption": "" |
| | | }, |
| | | { |
| | | "$type": "Document", |
| | | "DocumentIndex": 25, |
| | | "Title": "TaskExecuteDetailService.cs", |
| | | "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs", |
| | | "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs", |
| | | "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs", |
| | | "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs", |
| | | "ViewState": "AQIAADoAAAAAAAAAAAAIwFIAAABVAAAA", |
| | | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", |
| | | "WhenOpened": "2024-10-29T02:59:00.255Z", |
| | | "EditorCaption": "" |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Communicator |
| | | { |
| | | [AttributeUsage(AttributeTargets.Property)] |
| | | public class DataLengthAttribute : Attribute |
| | | { |
| | | public DataLengthAttribute(ushort dataLength) |
| | | { |
| | | DataLength = dataLength; |
| | | } |
| | | |
| | | public ushort DataLength { get; set; } |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using HslCommunication; |
| | | using HslCommunication.Core; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Communicator |
| | | { |
| | | public class MelsecCustomModel |
| | | { |
| | | #region <Const> |
| | | #endregion <Const> |
| | | |
| | | #region <Private Member> |
| | | public ushort ReadCount { get; } |
| | | |
| | | private IByteTransform byteTransform = new RegularByteTransform(); |
| | | #endregion <Private Member> |
| | | |
| | | #region <Public Menber> |
| | | |
| | | #endregion <Public Menber> |
| | | |
| | | #region <Constructor function> |
| | | public MelsecCustomModel() |
| | | { |
| | | ushort readCount = 0; |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | foreach (PropertyInfo propertyInfo in propertyInfos) |
| | | { |
| | | object? obj = propertyInfo.GetValue(this); |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | case TypeCode.Char: |
| | | readCount += sizeof(byte); |
| | | break; |
| | | case TypeCode.Int16: |
| | | case TypeCode.UInt16: |
| | | readCount += 2; |
| | | break; |
| | | case TypeCode.Single: |
| | | case TypeCode.Int32: |
| | | case TypeCode.UInt32: |
| | | readCount += 4; |
| | | break; |
| | | case TypeCode.String: |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | readCount += dataLength; |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | ReadCount = readCount; |
| | | } |
| | | #endregion <Constructor function> |
| | | |
| | | #region <Private Method> |
| | | private ushort CheckStringAttribute(PropertyInfo propertyInfo) |
| | | { |
| | | Attribute? attribute = propertyInfo.GetCustomAttribute(typeof(DataLengthAttribute)); |
| | | if (attribute == null) |
| | | { |
| | | throw new Exception($"å符串éè¦é
ç½®ãDataLengthãç¹æ§"); |
| | | } |
| | | ushort dataLength = ((DataLengthAttribute)attribute).DataLength; |
| | | if (dataLength <= 0 || dataLength > 256) |
| | | { |
| | | throw new Exception($"ãDataLengthãç¹æ§è¯·é
ç½®ææåæ°,åæ°èå´ã1-256ã"); |
| | | } |
| | | |
| | | return dataLength; |
| | | } |
| | | #endregion <Private Method> |
| | | |
| | | #region <Public Method> |
| | | public void ParseSource(byte[] Content) |
| | | { |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | int index = 0; |
| | | for (int i = 0; i < propertyInfos.Length; i++) |
| | | { |
| | | PropertyInfo propertyInfo = propertyInfos[i]; |
| | | |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | propertyInfo.SetValue(this, Content[index]); |
| | | index += sizeof(byte); |
| | | break; |
| | | case TypeCode.Char: |
| | | propertyInfo.SetValue(this, (char)Content[index]); |
| | | index += sizeof(char); |
| | | break; |
| | | case TypeCode.Int16: |
| | | propertyInfo.SetValue(this, byteTransform.TransInt16(Content, index)); |
| | | index += sizeof(short); |
| | | break; |
| | | case TypeCode.UInt16: |
| | | propertyInfo.SetValue(this, byteTransform.TransUInt16(Content, index)); |
| | | index += sizeof(ushort); |
| | | break; |
| | | case TypeCode.Single: |
| | | propertyInfo.SetValue(this, byteTransform.TransSingle(Content, index)); |
| | | index += sizeof(float); |
| | | break; |
| | | case TypeCode.Int32: |
| | | propertyInfo.SetValue(this, byteTransform.TransInt32(Content, index)); |
| | | index += sizeof(int); |
| | | break; |
| | | case TypeCode.UInt32: |
| | | propertyInfo.SetValue(this, byteTransform.TransUInt32(Content, index)); |
| | | index += sizeof(uint); |
| | | break; |
| | | case TypeCode.String: |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | propertyInfo.SetValue(this, byteTransform.TransString(Content.SelectMiddle(index, dataLength), Encoding.Default)); |
| | | index += dataLength; |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public byte[] ToSource() |
| | | { |
| | | int propertyValueHasNull = -1; |
| | | List<byte> bytes = new List<byte>(); |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | foreach (PropertyInfo propertyInfo in propertyInfos) |
| | | { |
| | | object? obj = propertyInfo.GetValue(this); |
| | | if (obj == null && propertyValueHasNull != -1) |
| | | { |
| | | throw new Exception($"{GetType().Name}é误"); |
| | | } |
| | | else |
| | | { |
| | | if (propertyValueHasNull == -1) |
| | | propertyValueHasNull = 2; |
| | | } |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | case TypeCode.Char: |
| | | if (obj != null) |
| | | { |
| | | bytes.Add((byte)obj); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Int16: |
| | | case TypeCode.UInt16: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesShort = BitConverter.GetBytes(Convert.ToUInt16(obj)); |
| | | Array.Reverse(bytesShort); |
| | | bytes.AddRange(bytesShort); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Single: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesSingle = BitConverter.GetBytes(Convert.ToSingle(obj)); |
| | | Array.Reverse(bytesSingle); |
| | | bytes.AddRange(bytesSingle); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Int32: |
| | | case TypeCode.UInt32: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesInt = BitConverter.GetBytes(Convert.ToUInt32(obj)); |
| | | Array.Reverse(bytesInt); |
| | | bytes.AddRange(bytesInt); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.String: |
| | | |
| | | if (obj != null) |
| | | { |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | byte[] bytesString = byteTransform.TransByte(obj.ToString(), Encoding.Default); |
| | | bytes.AddRange(bytesString); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | |
| | | return bytes.ToArray(); |
| | | } |
| | | #endregion <Public Method> |
| | | |
| | | #region <Event> |
| | | #endregion <Event> |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using HslCommunication.Core; |
| | | using HslCommunication; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Communicator |
| | | { |
| | | public class ModbusCustomModel |
| | | { |
| | | #region <Const> |
| | | #endregion <Const> |
| | | |
| | | #region <Private Member> |
| | | public ushort ReadCount { get; } |
| | | |
| | | private IByteTransform byteTransform = new ReverseWordTransform(); |
| | | #endregion <Private Member> |
| | | |
| | | #region <Public Menber> |
| | | |
| | | #endregion <Public Menber> |
| | | |
| | | #region <Constructor function> |
| | | public ModbusCustomModel() |
| | | { |
| | | ushort readCount = 0; |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | foreach (PropertyInfo propertyInfo in propertyInfos) |
| | | { |
| | | object? obj = propertyInfo.GetValue(this); |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | case TypeCode.Char: |
| | | readCount += sizeof(byte); |
| | | break; |
| | | case TypeCode.Int16: |
| | | case TypeCode.UInt16: |
| | | readCount += 2; |
| | | break; |
| | | case TypeCode.Single: |
| | | case TypeCode.Int32: |
| | | case TypeCode.UInt32: |
| | | readCount += 4; |
| | | break; |
| | | case TypeCode.String: |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | readCount += dataLength; |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | ReadCount = readCount; |
| | | } |
| | | #endregion <Constructor function> |
| | | |
| | | #region <Private Method> |
| | | private ushort CheckStringAttribute(PropertyInfo propertyInfo) |
| | | { |
| | | Attribute? attribute = propertyInfo.GetCustomAttribute(typeof(DataLengthAttribute)); |
| | | if (attribute == null) |
| | | { |
| | | throw new Exception($"å符串éè¦é
ç½®ãDataLengthãç¹æ§"); |
| | | } |
| | | ushort dataLength = ((DataLengthAttribute)attribute).DataLength; |
| | | if (dataLength <= 0 || dataLength > 256) |
| | | { |
| | | throw new Exception($"ãDataLengthãç¹æ§è¯·é
ç½®ææåæ°,åæ°èå´ã1-256ã"); |
| | | } |
| | | |
| | | return dataLength; |
| | | } |
| | | #endregion <Private Method> |
| | | |
| | | #region <Public Method> |
| | | public void ParseSource(byte[] Content) |
| | | { |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | int index = 0; |
| | | for (int i = 0; i < propertyInfos.Length; i++) |
| | | { |
| | | PropertyInfo propertyInfo = propertyInfos[i]; |
| | | |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | propertyInfo.SetValue(this, Content[index]); |
| | | index += sizeof(byte); |
| | | break; |
| | | case TypeCode.Char: |
| | | propertyInfo.SetValue(this, (char)Content[index]); |
| | | index += sizeof(char); |
| | | break; |
| | | case TypeCode.Int16: |
| | | propertyInfo.SetValue(this, byteTransform.TransInt16(Content, index)); |
| | | index += sizeof(short); |
| | | break; |
| | | case TypeCode.UInt16: |
| | | propertyInfo.SetValue(this, byteTransform.TransUInt16(Content, index)); |
| | | index += sizeof(ushort); |
| | | break; |
| | | case TypeCode.Single: |
| | | propertyInfo.SetValue(this, byteTransform.TransSingle(Content, index)); |
| | | index += sizeof(float); |
| | | break; |
| | | case TypeCode.Int32: |
| | | propertyInfo.SetValue(this, byteTransform.TransInt32(Content, index)); |
| | | index += sizeof(int); |
| | | break; |
| | | case TypeCode.UInt32: |
| | | propertyInfo.SetValue(this, byteTransform.TransUInt32(Content, index)); |
| | | index += sizeof(uint); |
| | | break; |
| | | case TypeCode.String: |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | propertyInfo.SetValue(this, byteTransform.TransString(Content.SelectMiddle(index, dataLength), Encoding.Default)); |
| | | index += dataLength; |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public byte[] ToSource() |
| | | { |
| | | int propertyValueHasNull = -1; |
| | | List<byte> bytes = new List<byte>(); |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | foreach (PropertyInfo propertyInfo in propertyInfos) |
| | | { |
| | | object? obj = propertyInfo.GetValue(this); |
| | | if (obj == null && propertyValueHasNull != -1) |
| | | { |
| | | throw new Exception($"{GetType().Name}é误"); |
| | | } |
| | | else |
| | | { |
| | | if (propertyValueHasNull == -1) |
| | | propertyValueHasNull = 2; |
| | | } |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | case TypeCode.Char: |
| | | if (obj != null) |
| | | { |
| | | bytes.Add((byte)obj); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Int16: |
| | | case TypeCode.UInt16: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesShort = BitConverter.GetBytes(Convert.ToUInt16(obj)); |
| | | Array.Reverse(bytesShort); |
| | | bytes.AddRange(bytesShort); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Single: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesSingle = BitConverter.GetBytes(Convert.ToSingle(obj)); |
| | | Array.Reverse(bytesSingle); |
| | | bytes.AddRange(bytesSingle); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Int32: |
| | | case TypeCode.UInt32: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesInt = BitConverter.GetBytes(Convert.ToUInt32(obj)); |
| | | Array.Reverse(bytesInt); |
| | | bytes.AddRange(bytesInt); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.String: |
| | | |
| | | if (obj != null) |
| | | { |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | byte[] bytesString = byteTransform.TransByte(obj.ToString(), Encoding.Default); |
| | | bytes.AddRange(bytesString); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | |
| | | return bytes.ToArray(); |
| | | } |
| | | #endregion <Public Method> |
| | | |
| | | #region <Event> |
| | | #endregion <Event> |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using HslCommunication; |
| | | using HslCommunication.Core; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Communicator |
| | | { |
| | | public class SiemensCustomModel : IDataTransfer |
| | | { |
| | | #region <Const> |
| | | #endregion <Const> |
| | | |
| | | #region <Private Member> |
| | | public ushort ReadCount { get; } |
| | | |
| | | private IByteTransform byteTransform = new ReverseBytesTransform(); |
| | | #endregion <Private Member> |
| | | |
| | | #region <Public Menber> |
| | | |
| | | #endregion <Public Menber> |
| | | |
| | | #region <Constructor function> |
| | | public SiemensCustomModel() |
| | | { |
| | | ushort readCount = 0; |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | foreach (PropertyInfo propertyInfo in propertyInfos) |
| | | { |
| | | object? obj = propertyInfo.GetValue(this); |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | case TypeCode.Char: |
| | | readCount += sizeof(byte); |
| | | break; |
| | | case TypeCode.Int16: |
| | | case TypeCode.UInt16: |
| | | readCount += 2; |
| | | break; |
| | | case TypeCode.Single: |
| | | case TypeCode.Int32: |
| | | case TypeCode.UInt32: |
| | | readCount += 4; |
| | | break; |
| | | case TypeCode.String: |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | readCount += dataLength; |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | ReadCount = readCount; |
| | | } |
| | | #endregion <Constructor function> |
| | | |
| | | #region <Private Method> |
| | | private ushort CheckStringAttribute(PropertyInfo propertyInfo) |
| | | { |
| | | Attribute? attribute = propertyInfo.GetCustomAttribute(typeof(DataLengthAttribute)); |
| | | if (attribute == null) |
| | | { |
| | | throw new Exception($"å符串éè¦é
ç½®ãDataLengthãç¹æ§"); |
| | | } |
| | | ushort dataLength = ((DataLengthAttribute)attribute).DataLength; |
| | | if (dataLength <= 0 || dataLength > 256) |
| | | { |
| | | throw new Exception($"ãDataLengthãç¹æ§è¯·é
ç½®ææåæ°,åæ°èå´ã1-256ã"); |
| | | } |
| | | if (dataLength % 2 != 0) |
| | | { |
| | | dataLength += 1; |
| | | } |
| | | dataLength += 2; |
| | | |
| | | return dataLength; |
| | | } |
| | | #endregion <Private Method> |
| | | |
| | | #region <Public Method> |
| | | public void ParseSource(byte[] Content) |
| | | { |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | int index = 0; |
| | | for (int i = 0; i < propertyInfos.Length; i++) |
| | | { |
| | | PropertyInfo propertyInfo = propertyInfos[i]; |
| | | |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | propertyInfo.SetValue(this, Content[index]); |
| | | index += sizeof(byte); |
| | | break; |
| | | case TypeCode.Char: |
| | | propertyInfo.SetValue(this, (char)Content[index]); |
| | | index += sizeof(char); |
| | | break; |
| | | case TypeCode.Int16: |
| | | propertyInfo.SetValue(this, byteTransform.TransInt16(Content, index)); |
| | | index += sizeof(short); |
| | | break; |
| | | case TypeCode.UInt16: |
| | | propertyInfo.SetValue(this, byteTransform.TransUInt16(Content, index)); |
| | | index += sizeof(ushort); |
| | | break; |
| | | case TypeCode.Single: |
| | | propertyInfo.SetValue(this, byteTransform.TransSingle(Content, index)); |
| | | index += sizeof(float); |
| | | break; |
| | | case TypeCode.Int32: |
| | | propertyInfo.SetValue(this, byteTransform.TransInt32(Content, index)); |
| | | index += sizeof(int); |
| | | break; |
| | | case TypeCode.UInt32: |
| | | propertyInfo.SetValue(this, byteTransform.TransUInt32(Content, index)); |
| | | index += sizeof(uint); |
| | | break; |
| | | case TypeCode.String: |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | propertyInfo.SetValue(this, Encoding.Default.GetString(Content, index + 2, Content[index + 1])); |
| | | index += dataLength; |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public byte[] ToSource() |
| | | { |
| | | int propertyValueHasNull = -1; |
| | | List<byte> bytes = new List<byte>(); |
| | | PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray(); |
| | | foreach (PropertyInfo propertyInfo in propertyInfos) |
| | | { |
| | | object? obj = propertyInfo.GetValue(this); |
| | | if (obj == null && propertyValueHasNull != -1) |
| | | { |
| | | throw new Exception($"{GetType().Name}é误"); |
| | | } |
| | | else |
| | | { |
| | | if (propertyValueHasNull == -1) |
| | | propertyValueHasNull = 2; |
| | | } |
| | | TypeCode typeCode = Type.GetTypeCode(propertyInfo.PropertyType); |
| | | switch (typeCode) |
| | | { |
| | | case TypeCode.Byte: |
| | | case TypeCode.SByte: |
| | | case TypeCode.Char: |
| | | if (obj != null) |
| | | { |
| | | bytes.Add((byte)obj); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Int16: |
| | | case TypeCode.UInt16: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesShort = BitConverter.GetBytes(Convert.ToUInt16(obj)); |
| | | Array.Reverse(bytesShort); |
| | | bytes.AddRange(bytesShort); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Single: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesSingle = BitConverter.GetBytes(Convert.ToSingle(obj)); |
| | | Array.Reverse(bytesSingle); |
| | | bytes.AddRange(bytesSingle); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.Int32: |
| | | case TypeCode.UInt32: |
| | | if (obj != null) |
| | | { |
| | | byte[] bytesInt = BitConverter.GetBytes(Convert.ToUInt32(obj)); |
| | | Array.Reverse(bytesInt); |
| | | bytes.AddRange(bytesInt); |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | case TypeCode.String: |
| | | |
| | | if (obj != null) |
| | | { |
| | | ushort dataLength = CheckStringAttribute(propertyInfo); |
| | | byte[] bytesString = Encoding.Default.GetBytes(obj.ToString()); |
| | | bytes.Add(Convert.ToByte(dataLength)); |
| | | bytes.Add(Convert.ToByte(obj.ToString().Length)); |
| | | bytes.AddRange(bytesString); |
| | | for (int i = 0; i < dataLength - obj.ToString().Length - 2; i++) |
| | | { |
| | | bytes.Add(0); |
| | | } |
| | | } |
| | | else |
| | | { propertyValueHasNull = 1; } |
| | | break; |
| | | default: |
| | | throw new NotSupportedException("䏿¯æçåºç¡ç±»å: " + propertyInfo.PropertyType); |
| | | } |
| | | } |
| | | |
| | | return bytes.ToArray(); |
| | | } |
| | | #endregion <Public Method> |
| | | |
| | | #region <Event> |
| | | #endregion <Event> |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Castle.DynamicProxy; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.Attributes; |
| | | using WIDESEAWCS_Core.Caches; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | |
| | | namespace WIDESEAWCS_Core.AOP |
| | | { |
| | | public class CacheAOP : IInterceptor |
| | | { |
| | | private readonly ICacheService _cacheService; |
| | | public CacheAOP(ICacheService cacheService) |
| | | { |
| | | _cacheService = cacheService; |
| | | } |
| | | |
| | | public void Intercept(IInvocation invocation) |
| | | { |
| | | var method = invocation.MethodInvocationTarget ?? invocation.Method; |
| | | |
| | | var cacheAttribute = method.GetCustomAttributes(true).FirstOrDefault(x => x.GetType() == typeof(CacheAttribute)); |
| | | if (cacheAttribute is CacheAttribute qCachingAttribute) |
| | | { |
| | | //è·åèªå®ä¹ç¼åé® |
| | | var cacheKey = CustomCacheKey(invocation); |
| | | if (_cacheService.Exists(cacheKey)) |
| | | { |
| | | //å°å½åè·åå°çç¼åå¼ï¼èµå¼ç»å½åæ§è¡æ¹æ³ |
| | | Type returnType; |
| | | if (typeof(Task).IsAssignableFrom(method.ReturnType)) |
| | | { |
| | | returnType = method.ReturnType.GenericTypeArguments.FirstOrDefault(); |
| | | } |
| | | else |
| | | { |
| | | returnType = method.ReturnType; |
| | | } |
| | | |
| | | //æ ¹æ®keyè·åç¸åºçç¼åå¼ |
| | | dynamic? cacheValue = _cacheService.Get(returnType, cacheKey); |
| | | if (cacheValue != null) |
| | | invocation.ReturnValue = (typeof(Task).IsAssignableFrom(method.ReturnType)) ? Task.FromResult(cacheValue) : cacheValue; |
| | | return; |
| | | } |
| | | |
| | | //廿§è¡å½åçæ¹æ³ |
| | | invocation.Proceed(); |
| | | //åå
¥ç¼å |
| | | if (!string.IsNullOrWhiteSpace(cacheKey)) |
| | | { |
| | | object response; |
| | | |
| | | //Type type = invocation.ReturnValue?.GetType(); |
| | | var type = invocation.Method.ReturnType; |
| | | if (typeof(Task).IsAssignableFrom(type)) |
| | | { |
| | | dynamic result = invocation.ReturnValue; |
| | | response = result.Result; |
| | | } |
| | | else |
| | | { |
| | | response = invocation.ReturnValue; |
| | | } |
| | | |
| | | if (response == null) response = string.Empty; |
| | | |
| | | _cacheService.AddOrUpdate(cacheKey, response.Serialize(), qCachingAttribute.AbsoluteExpiration * 60); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | invocation.Proceed(); //ç´æ¥æ§è¡è¢«æ¦æªæ¹æ³ |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// èªå®ä¹ç¼åçkey |
| | | /// </summary> |
| | | /// <param name="invocation"></param> |
| | | /// <returns></returns> |
| | | protected string CustomCacheKey(IInvocation invocation) |
| | | { |
| | | var typeName = invocation.TargetType.Name; |
| | | var methodName = invocation.Method.Name; |
| | | var methodArguments = invocation.Arguments.Select(GetArgumentValue).Take(3).ToList();//è·ååæ°åè¡¨ï¼æå¤ä¸ä¸ª |
| | | |
| | | string key = $"{typeName}:{methodName}:"; |
| | | foreach (var param in methodArguments) |
| | | { |
| | | key = $"{key}{param}:"; |
| | | } |
| | | |
| | | return key.TrimEnd(':'); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// object 转 string |
| | | /// </summary> |
| | | /// <param name="arg"></param> |
| | | /// <returns></returns> |
| | | protected static string GetArgumentValue(object arg) |
| | | { |
| | | if (arg is DateTime) |
| | | return ((DateTime)arg).ToString("yyyyMMddHHmmss"); |
| | | |
| | | if (!arg.IsNotEmptyOrNull()) |
| | | return arg.ObjToString(); |
| | | |
| | | if (arg != null) |
| | | { |
| | | if (arg is Expression) |
| | | { |
| | | var obj = arg as Expression; |
| | | var result = Resolve(obj); |
| | | return MD5Helper.MD5Encrypt16(result); |
| | | } |
| | | else if (arg.GetType().IsClass) |
| | | { |
| | | return MD5Helper.MD5Encrypt16(JsonConvert.SerializeObject(arg)); |
| | | } |
| | | |
| | | return $"value:{arg.ObjToString()}"; |
| | | } |
| | | return string.Empty; |
| | | } |
| | | |
| | | private static string Resolve(Expression expression) |
| | | { |
| | | ExpressionContext expContext = new ExpressionContext(); |
| | | expContext.Resolve(expression, ResolveExpressType.WhereSingle); |
| | | var value = expContext.Result.GetString(); |
| | | var pars = expContext.Parameters; |
| | | |
| | | pars.ForEach(s => |
| | | { |
| | | value = value.Replace(s.ParameterName, s.Value.ObjToString()); |
| | | }); |
| | | |
| | | return value; |
| | | } |
| | | } |
| | | } |
| | |
| | | break; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | private static string GetWholeSql(SugarParameter[] paramArr, string sql) |
| | | { |
| | | foreach (var param in paramArr) |
| | | { |
| | | sql = sql.Replace(param.ParameterName, $@"'{param.Value.ObjToString()}'"); |
| | | } |
| | | |
| | | return sql; |
| | | } |
| | | |
| | | private static string GetParas(SugarParameter[] pars) |
| | | { |
| | | string key = "ãSQLåæ°ãï¼"; |
| | | foreach (var param in pars) |
| | | { |
| | | key += $"{param.ParameterName}:{param.Value}\n"; |
| | | } |
| | | |
| | | return key; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Core.ApiDoc |
| | | { |
| | | public class ByteHelper |
| | | { |
| | | public static byte[] StreamToBytes(Stream stream) |
| | | { |
| | | byte[] bytes = new byte[stream.Length]; |
| | | stream.Read(bytes, 0, bytes.Length); |
| | | stream.Seek(0, SeekOrigin.Begin); |
| | | return bytes; |
| | | } |
| | | |
| | | public static Stream BytesToStream(byte[] bytes) |
| | | { |
| | | return new MemoryStream(bytes); |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.OpenApi.Interfaces; |
| | | using Microsoft.OpenApi.Models; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Core.ApiDoc |
| | | { |
| | | public class HtmlHelper |
| | | { |
| | | /// <summary> |
| | | /// å°æ°æ®éåéæé¡µé¢ä¸ |
| | | /// </summary> |
| | | /// <param name="templatePath">éæé¡µé¢å°å</param> |
| | | /// <param name="model">è·åå°çæä»¶æ°æ®</param> |
| | | /// <returns></returns> |
| | | public static string GeneritorSwaggerHtml(string templatePath, OpenApiDocument model) |
| | | { |
| | | var template = System.IO.File.ReadAllText(templatePath); |
| | | |
| | | return string.Empty; |
| | | } |
| | | |
| | | |
| | | |
| | | public static Dictionary<string, object> GetBodyParam(IDictionary<string, OpenApiSchema> schemas, string schemaName) |
| | | { |
| | | if (schemas.ContainsKey(schemaName)) |
| | | { |
| | | OpenApiSchema schema = schemas[schemaName]; |
| | | Dictionary<string, object> pairs = new Dictionary<string, object>(); |
| | | foreach (var pair in schema.Properties) |
| | | { |
| | | if (pair.Value.Type == "object") |
| | | { |
| | | |
| | | } |
| | | else if (pair.Value.Type == "array") |
| | | { |
| | | if (pair.Value.Items.Reference != null) |
| | | { |
| | | string childSchemaName = pair.Value.Items.Reference.Id; |
| | | Dictionary<string, object> keyValuePairs = GetBodyParam(schemas, childSchemaName); |
| | | if (keyValuePairs != null && keyValuePairs.Keys.Count > 0) |
| | | { |
| | | pairs.Add(pair.Key, keyValuePairs); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | pairs.Add(pair.Key, new |
| | | { |
| | | ParamName = pair.Key, |
| | | Description = pair.Value.Description, |
| | | ParamType = pair.Value.Type, |
| | | Required = (schema.Required.FirstOrDefault(x => x == pair.Key) != null).ToString() |
| | | }); |
| | | } |
| | | } |
| | | return pairs; |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <param name="serviceProvider"></param> |
| | | /// <param name="mustBuild"></param> |
| | | /// <returns></returns> |
| | | public static object GetService(Type type, IServiceProvider? serviceProvider = null, bool mustBuild = true) |
| | | public static object? GetService(Type type, IServiceProvider? serviceProvider = null, bool mustBuild = true) |
| | | { |
| | | object? obj = (serviceProvider ?? GetServiceProvider(type, mustBuild, false))?.GetService(type); |
| | | return obj; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Core.Attributes |
| | | { |
| | | /// <summary> |
| | | /// è¿ä¸ªAttributeå°±æ¯ä½¿ç¨æ¶åçéªè¯ï¼æå®æ·»å å°è¦ç¼åæ°æ®çæ¹æ³ä¸ï¼å³å¯å®æç¼åçæä½ã |
| | | /// </summary> |
| | | [AttributeUsage(AttributeTargets.Method, Inherited = true)] |
| | | public class CacheAttribute : Attribute |
| | | { |
| | | /// <summary> |
| | | /// ç¼åç»å¯¹è¿ææ¶é´ï¼åéï¼ |
| | | /// </summary> |
| | | public int AbsoluteExpiration { get; set; } = 30; |
| | | } |
| | | } |
| | |
| | | [AttributeUsage(AttributeTargets.Property)] |
| | | public class PropertyValidateAttribute : Attribute |
| | | { |
| | | /// <summary> |
| | | /// æå¤§å¼ |
| | | /// </summary> |
| | | public int MaxValue { get; set; } = int.MaxValue; |
| | | |
| | | /// <summary> |
| | | /// æå°å¼ |
| | | /// </summary> |
| | | public int MinValue { get; set; } = int.MinValue; |
| | | |
| | | /// <summary> |
| | | /// é空 |
| | | /// </summary> |
| | | public bool NotNullAndEmpty { get; set; } = true; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å
å«æå¤§å¼ |
| | | /// </summary> |
| | | public bool IsContainMaxValue { get; set; } = false; |
| | | |
| | | /// <summary> |
| | | /// æ¯å¦å
嫿å°å¼ |
| | | /// </summary> |
| | | public bool IsContainMinValue { get; set; } = false; |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®å
¶ä»å±æ§éç©ºå¤æå½åæ¯å¦ä¸ºé空 |
| | | /// </summary> |
| | | public string NotNullAndEmptyWithProperty { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®å
¶ä»å±æ§å¼å¤æå½åæ¯å¦ä¸ºé空(æ ¼å¼ãnew string[]{ "屿§åç§°", "屿§å¼" }ã) |
| | | /// </summary> |
| | | public string[] NotNullAndEmptyWithPropertyAndValue { get; set; } |
| | | |
| | | public string Description { get; set; } |
| | | |
| | | public PropertyValidateAttribute(string description) |
| | |
| | | using System.Linq.Expressions; |
| | | using System.Reflection; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Core.Const; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_Core.Utilities; |
| | |
| | | LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition(); |
| | | if (expressionType == LinqExpressionType.Equal) |
| | | { |
| | | where += $"{searchParametersList[i].Name} = '{results[j].Item3}'"; |
| | | 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 |
| | | { |
| | |
| | | |
| | | void AddOrUpdate(string key, string value, int expireSeconds = -1, bool isSliding = false); |
| | | |
| | | void AddOrUpdate(string key, object value, int expireSeconds = -1, bool isSliding = false); |
| | | |
| | | /// <summary> |
| | | /// å é¤ç¼å |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | /// <param name="key">ç¼åKey</param> |
| | | /// <returns></returns> |
| | | T Get<T>(string key) where T : class; |
| | | T? Get<T>(string key) where T : class; |
| | | |
| | | object? Get(Type type, string key); |
| | | |
| | | /// <summary> |
| | | /// è·åç¼å |
| | | /// </summary> |
| | | /// <param name="key">ç¼åKey</param> |
| | | /// <returns></returns> |
| | | string Get(string key); |
| | | string? Get(string key); |
| | | } |
| | | } |
| | |
| | | using Microsoft.Extensions.Caching.Memory; |
| | | using Microsoft.Extensions.Caching.Distributed; |
| | | using Microsoft.Extensions.Caching.Memory; |
| | | using Newtonsoft.Json; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.Helper; |
| | | |
| | | namespace WIDESEAWCS_Core.Caches |
| | | { |
| | |
| | | |
| | | public bool AddObject(string key, object value, int expireSeconds = -1, bool isSliding = false) |
| | | { |
| | | if (expireSeconds != -1) |
| | | if (expireSeconds > 0) |
| | | { |
| | | _cache.Set(key, |
| | | value, |
| | |
| | | } |
| | | } |
| | | |
| | | public void AddOrUpdate(string key, object value, int expireSeconds = -1, bool isSliding = false) |
| | | { |
| | | if (!string.IsNullOrEmpty(Get(key))) |
| | | { |
| | | Remove(key); |
| | | Add(key, value.Serialize(), expireSeconds, isSliding); |
| | | } |
| | | else |
| | | { |
| | | Add(key, value.Serialize(), expireSeconds, isSliding); |
| | | } |
| | | } |
| | | |
| | | public void Dispose() |
| | | { |
| | | if (_cache != null) |
| | |
| | | return _cache.Get(key) != null; |
| | | } |
| | | |
| | | public T Get<T>(string key) where T : class |
| | | public T? Get<T>(string key) where T : class |
| | | { |
| | | if (key == null) |
| | | { |
| | | throw new ArgumentNullException(nameof(key)); |
| | | } |
| | | return _cache.Get(key) as T; |
| | | object? value = _cache.Get(key); |
| | | if (value == null) |
| | | { |
| | | throw new ArgumentNullException(nameof(key)); |
| | | } |
| | | return value as T; |
| | | } |
| | | |
| | | public string Get(string key) |
| | | public string? Get(string key) |
| | | { |
| | | try |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | public object? Get(Type type, string key) |
| | | { |
| | | try |
| | | { |
| | | object res = _cache.Get(key); |
| | | return res == null ? default : JsonConvert.DeserializeObject(res?.ToString() ?? "{}", type); |
| | | } |
| | | catch |
| | | { |
| | | return string.Empty; |
| | | } |
| | | } |
| | | |
| | | public bool Remove(string key) |
| | | { |
| | | if (key == null) |
| | |
| | | public const string like = "like"; |
| | | |
| | | public const string ThanOrEqual = ">="; |
| | | public const string LessOrequal = "<="; |
| | | public const string LessOrEqual = "<="; |
| | | public const string Contains = "in"; |
| | | public const string Equal = "="; |
| | | } |
| | |
| | | services.AddSwaggerGen(c => |
| | | { |
| | | //éååºå
¨é¨ççæ¬ï¼åææ¡£ä¿¡æ¯å±ç¤º |
| | | typeof(ApiVersions).GetEnumNames().ToList().ForEach(version => |
| | | //typeof(ApiVersions).GetEnumNames().ToList().ForEach(version => |
| | | //{ |
| | | c.SwaggerDoc("v1", new OpenApiInfo |
| | | { |
| | | c.SwaggerDoc(version, new OpenApiInfo |
| | | { |
| | | Version = version, |
| | | Version = "v1", |
| | | Title = $"{ApiName} æ¥å£ææ¡£ââ{RuntimeInformation.FrameworkDescription}", |
| | | Description = $"{ApiName} HTTP API " + version, |
| | | Description = $"{ApiName} HTTP API " + "v1" |
| | | }); |
| | | c.OrderActionsBy(o => o.RelativePath); |
| | | }); |
| | | //}); |
| | | |
| | | c.UseInlineDefinitionsForEnums(); |
| | | try |
| | |
| | | /// <summary> |
| | | /// V1 çæ¬ |
| | | /// </summary> |
| | | V1 = 1, |
| | | /// <summary> |
| | | /// V2 çæ¬ |
| | | /// </summary> |
| | | V2 = 2, |
| | | V1 = 1 |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Security.Cryptography; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEAWCS_Core.Helper |
| | | { |
| | | public class MD5Helper |
| | | { |
| | | /// <summary> |
| | | /// 16ä½MD5å å¯ |
| | | /// </summary> |
| | | /// <param name="password"></param> |
| | | /// <returns></returns> |
| | | public static string MD5Encrypt16(string password) |
| | | { |
| | | var md5 = MD5.Create(); |
| | | string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(password)), 4, 8); |
| | | t2 = t2.Replace("-", string.Empty); |
| | | return t2; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 32ä½MD5å å¯ |
| | | /// </summary> |
| | | /// <param name="password"></param> |
| | | /// <returns></returns> |
| | | public static string MD5Encrypt32(string password = "") |
| | | { |
| | | string pwd = string.Empty; |
| | | try |
| | | { |
| | | if (!string.IsNullOrEmpty(password) && !string.IsNullOrWhiteSpace(password)) |
| | | { |
| | | MD5 md5 = MD5.Create(); //å®ä¾åä¸ä¸ªmd5对å |
| | | // å å¯åæ¯ä¸ä¸ªåèç±»åçæ°ç»ï¼è¿éè¦æ³¨æç¼ç UTF8/Unicodeççéæ©ã |
| | | byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password)); |
| | | // éè¿ä½¿ç¨å¾ªç¯ï¼å°åèç±»åçæ°ç»è½¬æ¢ä¸ºåç¬¦ä¸²ï¼æ¤å符串æ¯å¸¸è§åç¬¦æ ¼å¼åæå¾ |
| | | foreach (var item in s) |
| | | { |
| | | // å°å¾å°çå符串使ç¨åå
è¿å¶ç±»åæ ¼å¼ãæ ¼å¼åçå符æ¯å°åç忝ï¼å¦æä½¿ç¨å¤§åï¼Xï¼åæ ¼å¼åçå符æ¯å¤§åå符 |
| | | pwd = string.Concat(pwd, item.ToString("X2")); |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | throw new Exception($"é误ç password å符串:ã{password}ã"); |
| | | } |
| | | return pwd; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 64ä½MD5å å¯ |
| | | /// </summary> |
| | | /// <param name="password"></param> |
| | | /// <returns></returns> |
| | | public static string MD5Encrypt64(string password) |
| | | { |
| | | // å®ä¾åä¸ä¸ªmd5对å |
| | | // å å¯åæ¯ä¸ä¸ªåèç±»åçæ°ç»ï¼è¿éè¦æ³¨æç¼ç UTF8/Unicodeççéæ©ã |
| | | MD5 md5 = MD5.Create(); |
| | | byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(password)); |
| | | return Convert.ToBase64String(s); |
| | | } |
| | | /// <summary> |
| | | /// Sha1å å¯ |
| | | /// </summary> |
| | | /// <param name="str">è¦å å¯çå符串</param> |
| | | /// <returns>å å¯åçåå
è¿å¶çå叿£åï¼å符串ï¼</returns> |
| | | public static string Sha1(string str, string format = "x2") |
| | | { |
| | | var buffer = Encoding.UTF8.GetBytes(str); |
| | | var data = SHA1.Create().ComputeHash(buffer); |
| | | var sb = new StringBuilder(); |
| | | foreach (var t in data) |
| | | { |
| | | sb.Append(t.ToString(format)); |
| | | } |
| | | return sb.ToString(); |
| | | } |
| | | /// <summary> |
| | | /// Sha256å å¯ |
| | | /// </summary> |
| | | /// <param name="str">è¦å å¯çå符串</param> |
| | | /// <returns>å å¯åçåå
è¿å¶çå叿£åï¼å符串ï¼</returns> |
| | | public static string Sha256(string str, string format = "x2") |
| | | { |
| | | var buffer = Encoding.UTF8.GetBytes(str); |
| | | var data = SHA256.Create().ComputeHash(buffer); |
| | | var sb = new StringBuilder(); |
| | | foreach (var t in data) |
| | | { |
| | | sb.Append(t.ToString(format)); |
| | | } |
| | | return sb.ToString(); |
| | | } |
| | | } |
| | | } |
| | |
| | | using System; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | |
| | | PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance); |
| | | foreach (var property in propertyInfos) |
| | | { |
| | | object value = null; |
| | | object? value = null; |
| | | if (!dic.TryGetValue(property.Name, out value)) |
| | | { |
| | | if (!dic.TryGetValue(property.Name.FirstLetterToUpper(), out value)) |
| | |
| | | } |
| | | } |
| | | }; |
| | | property.SetValue(model, value?.ToString().ChangeType(property.PropertyType)); |
| | | |
| | | SugarColumn? sugarColumn = property.GetCustomAttribute<SugarColumn>(); |
| | | if (sugarColumn != null && sugarColumn.IsIdentity && (value == null || value.Equals(""))) |
| | | { |
| | | continue; |
| | | } |
| | | if (value != null && sugarColumn != null && !sugarColumn.IsNullable) |
| | | property.SetValue(model, value.ChangeType(property.PropertyType)); |
| | | } |
| | | return model; |
| | | } |
| | |
| | | switch (stringType) |
| | | { |
| | | case HtmlElementType.Contains: |
| | | case HtmlElementType.selectlist: |
| | | case nameof(HtmlElementType.Contains): |
| | | linqExpression = LinqExpressionType.In; |
| | | break; |
| | | case HtmlElementType.ThanOrEqual: |
| | | case nameof(HtmlElementType.ThanOrEqual): |
| | | case HtmlElementType.thanorequal: |
| | | linqExpression = LinqExpressionType.ThanOrEqual; |
| | | break; |
| | | case HtmlElementType.LessOrequal: |
| | | case HtmlElementType.LessOrEqual: |
| | | case nameof(HtmlElementType.LessOrEqual): |
| | | case HtmlElementType.lessorequal: |
| | | linqExpression = LinqExpressionType.LessThanOrEqual; |
| | | break; |
| | | case HtmlElementType.GT: |
| | | case nameof(HtmlElementType.GT): |
| | | linqExpression = LinqExpressionType.GreaterThan; |
| | | break; |
| | | case HtmlElementType.lt: |
| | |
| | | |
| | | ms.Position = 0; |
| | | await ms.CopyToAsync(originalBody); |
| | | if (!(context.Request.Path.Value?.Contains("Get") ?? false)) |
| | | if (!(context.Request.Path.Value?.Contains("get") ?? true)) |
| | | Logger.Add(requestParam, responseParam); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using static WIDESEAWCS_Core.Extensions.CustomApiVersion; |
| | | |
| | | namespace WIDESEAWCS_Core.Middlewares |
| | | { |
| | |
| | | { |
| | | //æ ¹æ®çæ¬åç§°ååº éåå±ç¤º |
| | | var apiName = AppSettings.Get(new string[] { "ApiName" }); |
| | | typeof(ApiVersions).GetEnumNames().OrderByDescending(e => e).ToList().ForEach(version => |
| | | { |
| | | c.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"{apiName} {version}"); |
| | | }); |
| | | |
| | | c.SwaggerEndpoint($"https://petstore.swagger.io/v2/swagger.json", $"{apiName} pet"); |
| | | c.SwaggerEndpoint($"/swagger/v1/swagger.json", $"{apiName} v1"); |
| | | |
| | | // å°swaggeré¦é¡µï¼è®¾ç½®ææä»¬èªå®ä¹ç页é¢ï¼è®°å¾è¿ä¸ªå符串çåæ³ï¼{项ç®å.index.html} |
| | | if (streamHtml.Invoke() == null) |
| | |
| | | //Log.Error(msg); |
| | | throw new Exception(msg); |
| | | } |
| | | c.DocumentTitle = $"{apiName} å¨çº¿è°è¯ææ¡£"; |
| | | |
| | | c.InjectStylesheet("/css/swaggerdoc.css"); |
| | | c.InjectJavascript("/js/swaggerdoc.js"); |
| | | c.IndexStream = streamHtml; |
| | | c.DocExpansion(DocExpansion.None); //->ä¿®æ¹ç颿弿¶èªå¨æå |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | |
| | | int length = sugarColumn.Length; |
| | | if (length == 0) { return (true, null, null); } |
| | | if (length == 0) { return (true, null, value); } |
| | | //夿ååèä¸ååæ®µ |
| | | else if (length < 8000 && |
| | | ((dbType.Substring(0, 1) != "n" |
| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.Attributes; |
| | | using WIDESEAWCS_Core.Helper; |
| | | |
| | | namespace WIDESEAWCS_Core.Utilities |
| | | { |
| | |
| | | return SimpleValidate(propertyInfos, data); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éªè¯å®ä½åæ° |
| | | /// </summary> |
| | | /// <typeparam name="T"></typeparam> |
| | | /// <param name="data"></param> |
| | | /// <returns></returns> |
| | | public static (bool, string, object?) ValidateModelData<T>(List<T> datas) where T : class, new() |
| | | { |
| | | Type modelType = typeof(T); |
| | |
| | | if (Convert.ToInt32(value.ToString()) > propertyAttribute.MaxValue) return (false, $"{(string.IsNullOrEmpty(propertyAttribute.Description) ? propertyInfo.Name : propertyAttribute.Description)}çå¼ã{value}ãè¦å°äºã{propertyAttribute.MaxValue}ã", data); |
| | | } |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(propertyAttribute.NotNullAndEmptyWithProperty)) |
| | | { |
| | | PropertyInfo? property = propertyInfos.FirstOrDefault(x => x.Name == propertyAttribute.NotNullAndEmptyWithProperty); |
| | | if (property != null) |
| | | { |
| | | object? tempValue = property.GetValue(data); |
| | | if (tempValue != null && !string.IsNullOrEmpty(tempValue.ToString())) |
| | | { |
| | | Type[] types = propertyInfo.PropertyType.GenericTypeArguments; |
| | | if (types.Length == 1) |
| | | { |
| | | string str = value.Serialize(); |
| | | if (str == "[]") |
| | | { |
| | | return (false, $"ã{property.Name}ã屿§çå¼é空æ¶ã{propertyInfo.Name}ã屿§çå¼ä¹ä¸å¯ä¸ºç©º", data); |
| | | } |
| | | } |
| | | else if (types.Length == 0) |
| | | { |
| | | if (value == null) |
| | | { |
| | | return (false, $"ã{property.Name}ã屿§çå¼é空æ¶ã{propertyInfo.Name}ã屿§çå¼ä¹ä¸å¯ä¸ºç©º", data); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return (false, $"æªæ¾å°ã{propertyInfo.Name}ãç¹æ§å±æ§ã{propertyAttribute.NotNullAndEmptyWithProperty}ã", data); |
| | | } |
| | | } |
| | | |
| | | if (propertyAttribute.NotNullAndEmptyWithPropertyAndValue != null && propertyAttribute.NotNullAndEmptyWithPropertyAndValue.Length == 2) |
| | | { |
| | | PropertyInfo? property = propertyInfos.FirstOrDefault(x => x.Name == propertyAttribute.NotNullAndEmptyWithPropertyAndValue[0]); |
| | | if (property != null) |
| | | { |
| | | object? tempValue = property.GetValue(data); |
| | | if (tempValue != null && !string.IsNullOrEmpty(tempValue.ToString())) |
| | | { |
| | | Type[] types = propertyInfo.PropertyType.GenericTypeArguments; |
| | | if (types.Length == 1) |
| | | { |
| | | if (tempValue.ChangeType(property.PropertyType).ToString() == propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1].ChangeType(property.PropertyType).ToString()) |
| | | { |
| | | string str = value.Serialize(); |
| | | if (str == "[]") |
| | | { |
| | | return (false, $"ã{property.Name}ã屿§çå¼ä¸ºã{propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1]}ãæ¶ã{propertyInfo.Name}ã屿§çå¼ä¸å¯ä¸ºç©º", data); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else if (types.Length == 0) |
| | | { |
| | | if (tempValue.ChangeType(property.PropertyType).ToString() == propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1].ChangeType(property.PropertyType).ToString() && value == null && string.IsNullOrEmpty(value.ToString())) |
| | | { |
| | | return (false, $"ã{property.Name}ã屿§çå¼ä¸ºã{propertyAttribute.NotNullAndEmptyWithPropertyAndValue[1]}ãæ¶ã{propertyInfo.Name}ã屿§çå¼ä¸å¯ä¸ºç©º", data); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return (false, $"æªæ¾å°å±æ§ã{propertyAttribute.NotNullAndEmptyWithProperty}ã", data); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | | namespace WIDESEAWCS_ISystemRepository |
| | | { |
| | | public interface ISys_LogRepository : IRepository<Sys_Log> |
| | | { |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | | namespace WIDESEAWCS_ISystemServices |
| | | { |
| | | public interface ISys_LogService : IService<Sys_Log> |
| | | { |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// èªå®ä¹å åæº |
| | | /// </summary> |
| | | /// <typeparam name="T1">å åæºç¶æ1æ³å</typeparam> |
| | | /// <typeparam name="T2">å åæºç¶æ2æ³å</typeparam> |
| | | /// <typeparam name="T3">å åæºç¶æ3æ³å</typeparam> |
| | | [Description("å åæº")] |
| | | [Description("å åæº2")] |
| | | public class SpeStackerCrane : IStackerCrane |
| | | { |
| | | #region Private Member |
| | |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | <Nullable>enable</Nullable> |
| | | <Description>æ´æ°--ææ¶åªæ¯æè¥¿é¨åPLC读å对象</Description> |
| | | <Version>2.0.3</Version> |
| | | <Version>2.0.4</Version> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | |
| | | List<string> cacheDicNos = new List<string>(); |
| | | foreach (string n in dicNos.Where(x => !selectDicNos.Contains(x))) |
| | | { |
| | | string str = _cacheService.Get(n); |
| | | string? str = _cacheService.Get(n); |
| | | if (!string.IsNullOrEmpty(str)) |
| | | { |
| | | VueDictionaryDTO? vueDictionary = JsonConvert.DeserializeObject<VueDictionaryDTO>(str); |
| | |
| | | |
| | | foreach (var item in cusDics) |
| | | { |
| | | VueDictionaryDTO vueDictionaryDTO = GetVueDictionary(item.Trim()); |
| | | VueDictionaryDTO? vueDictionaryDTO = GetVueDictionary(item.Trim()); |
| | | if (vueDictionaryDTO != null) |
| | | { |
| | | vueDictionaryDTOs.Add(vueDictionaryDTO); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using WIDESEAWCS_Core.BaseController; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | | namespace WIDESEAWCS_Server.Controllers.System |
| | | { |
| | | [Route("api/[controller]")] |
| | | [ApiController] |
| | | public class Sys_LogController : ApiBaseController<ISys_LogService, Sys_Log> |
| | | { |
| | | public Sys_LogController(ISys_LogService service) : base(service) |
| | | { |
| | | } |
| | | } |
| | | } |
| | |
| | | "commandName": "Project", |
| | | "dotnetRunMessages": true, |
| | | "launchBrowser": true, |
| | | "launchUrl": "swagger", |
| | | "applicationUrl": "http://localhost:5208", |
| | | "environmentVariables": { |
| | | "ASPNETCORE_ENVIRONMENT": "Development" |
| | |
| | | "IIS Express": { |
| | | "commandName": "IISExpress", |
| | | "launchBrowser": true, |
| | | "launchUrl": "swagger", |
| | | "environmentVariables": { |
| | | "ASPNETCORE_ENVIRONMENT": "Development" |
| | | } |
| | |
| | | // 注æï¼http://127.0.0.1:1818 å http://localhost:1818 æ¯ä¸ä¸æ ·ç |
| | | "IPs": "http://127.0.0.1:8080,http://localhost:8080" |
| | | }, |
| | | "ApiName": "WIDESEA", |
| | | "ApiName": "WIDESEAWCS", |
| | | "ExpMinutes": 120, |
| | | "QuartzJobAutoStart": true, |
| | | "LogDeubgEnable": true, |
| | |
| | | </svg> |
| | | <div id="swagger-ui"></div> |
| | | <div id="footer" style="text-align: center;margin-bottom: 10px;"> |
| | | Copyright © 2018-2023 BCVPå¼åè
ç¤¾åº |
| | | |
| | | <br><span id="poweredby">Powered by .NET 8.0 on Docker & CentOS 7.6</span> |
| | | |
| | | <br><span id="poweredby"></span> |
| | | </div> |
| | | <!-- Workaround for https://github.com/swagger-api/swagger-editor/issues/1371 --> |
| | | <script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .selectBox { |
| | | margin: 50px auto; /*å±
ä¸*/ |
| | | width: 150px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .selectBox a { |
| | | color: #1b1b1b; |
| | | text-decoration: none; |
| | | } |
| | | |
| | | .selectBox ul, .selectBox li { |
| | | list-style: none; |
| | | } |
| | | |
| | | .selectBox span { |
| | | line-height: 46px; |
| | | background-color: #85ea2d; |
| | | display: block; |
| | | margin-bottom: 20px; |
| | | position: relative; |
| | | z-index: 2; |
| | | border-radius: 5px; |
| | | -webkit-transition: all .2s ease-in; |
| | | transition: all .2s ease-in; |
| | | } |
| | | |
| | | .drop { |
| | | left: 0; |
| | | right: 0; |
| | | top: -9999px; |
| | | box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.2); |
| | | border-radius: 5px; |
| | | position: absolute; |
| | | z-index: 1; |
| | | -webkit-transform: translateY(-50px); /*yè½´æ¹å平移*/ |
| | | transform: translateY(-50px); |
| | | opacity: 0; |
| | | -webkit-transition: all .2s ease-in; /*平移æ¶é´0.2s*/ |
| | | transition: all .2s ease-in; |
| | | } |
| | | /*ç»éä¸ªä¸æå©æ»*/ |
| | | .selectBox:hover span { |
| | | background-color: #74ea0d; |
| | | } |
| | | |
| | | .selectBox:hover span a:after { |
| | | -webkit-transform: rotate(180deg); /*æè½¬180度*/ |
| | | transform: rotate(180deg); |
| | | } |
| | | |
| | | .selectBox:hover .drop { |
| | | position: static; |
| | | opacity: 1; |
| | | -webkit-transform: translateY(0); |
| | | transform: translateY(0); |
| | | } |
| | | .drop li:first-child:before { |
| | | content: " "; |
| | | font-size: 0; |
| | | line-height: 0; |
| | | margin: 0 auto; /*å±
ä¸*/ |
| | | display: block; /*ç¬å ä¸è¡*/ |
| | | box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.2); /*é
åæ´ä½ä¸æ ·çæå½±*/ |
| | | background-color: #fff; |
| | | width: 10px; |
| | | height: 10px; |
| | | -webkit-transform: rotate(45deg); |
| | | transform: rotate(45deg); /*ä¸ä¸ªæ£æ¹å½¢å¾æååäºåº¦å°±æ¯ä¸è§äºä½æ¯è¦æä¸åé¨åèèµ·æ¥*/ |
| | | position: relative; |
| | | top: -5px; /*ææçé²åºä¸åé¨å*/ |
| | | z-index: 1; /*ææçéèä¸åé¨å*/ |
| | | -webkit-transition: all .2s ease-in; |
| | | transition: all .2s ease-in; |
| | | } |
| | | |
| | | .drop li a { |
| | | color: #888; |
| | | line-height: 46px; |
| | | border-bottom: solid 1px #eee; |
| | | font-size: 14px; |
| | | display: block; |
| | | background-color: #fff; /*è¦æèæ¯è²æè½çä½å*/ |
| | | position: relative; |
| | | z-index: 2; /*è¿éå¾éè¦ è¦æ¡ä½ä¸è§å½¢çä¸åé¨å*/ |
| | | -webkit-transition: all .2s ease-in; |
| | | transition: all .2s ease-in; |
| | | } |
| | | .drop li:first-child a { |
| | | border-top-left-radius: 5px; |
| | | border-top-right-radius: 5px; |
| | | margin-top: -10px; |
| | | } |
| | | |
| | | .drop li:last-child a { |
| | | border-bottom-left-radius: 5px; |
| | | border-bottom-right-radius: 5px; |
| | | border-bottom: none; |
| | | } |
| | | .drop li:hover:before { |
| | | background-color: #85ea2d; |
| | | } |
| | | |
| | | .drop li:hover a { |
| | | background-color: #85ea2d; |
| | | color: #fff; |
| | | } |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | var exten = "";//ä¸è½½æä»¶åç¼å |
| | | var timerLoadExportBtn = null; |
| | | $(document).delegate("#select", "change", function () { |
| | | debugger |
| | | setTimeout("LoadExportApiWordBtn()", 300);//å è½½å¯¼åºæé® |
| | | console.log("dom export ok"); |
| | | }); |
| | | |
| | | $(document).ready(function () { |
| | | InitLoad();//åå§åå¯¼åº |
| | | //loading设置 |
| | | $.busyLoadSetup({ |
| | | animation: "slide", |
| | | background: "rgba(255, 152, 0, 0.86)" |
| | | }); |
| | | }); |
| | | |
| | | //åå§å |
| | | function InitLoad() { |
| | | setTimeout("LoadExportApiWordBtn()", 300);//å è½½å¯¼åºæé® |
| | | } |
| | | |
| | | //å è½½èªå®ä¹å¯¼åºæé® |
| | | function LoadExportApiWordBtn() { |
| | | $(".information-container").height(240);//ææ¡£ä»ç»åºåé«åº¦ |
| | | $(".topbar").height(35); |
| | | var btnExport = "<div class='selectBox' style='position: absolute;margin: 0;padding: 0;margin-left: 1432px;top: 2.5px;'>" + |
| | | "<span><a href='javascript:void(0);'>导åºç¦»çº¿ææ¡£</a></span>" + |
| | | "<div class='drop'>" + |
| | | "<ul style='margin: 0;padding: 0;'>" + |
| | | //"<li>" + |
| | | //"<a href='javascript:void(0);' onclick='ExportApiWord(1)'>å¯¼åº Word</a>" + |
| | | //"</li>" + |
| | | //"<li>" + |
| | | //"<a href='javascript:void(0);' onclick='ExportApiWord(2)'>å¯¼åº PDF</a>" + |
| | | //"</li>" + |
| | | "<li>" + |
| | | "<a href='javascript:void(0);' onclick='ExportApiWord(3)'>å¯¼åº Html</a>" + |
| | | "</li >" + |
| | | //"<li>" + |
| | | //"<a href='javascript:void(0);' onclick='ExportApiWord(4)'>å¯¼åº Xml</a>" + |
| | | //"</li >" + |
| | | //"<li>" + |
| | | //"<a href='javascript:void(0);' onclick='ExportApiWord(5)'>å¯¼åº Svg</a>" + |
| | | //"</li >" + |
| | | "</ul >" + |
| | | "</div >" + |
| | | "</div >"; |
| | | //information-containerè¿ä¸ªå
ç´ æ¯swaggeråæå¨ææ¸²æåºæ¥çï¼ææè¿éè¦å 个循ç¯å¤æã |
| | | //ç¬¬ä¸æ¬¡è¿æ¥å¦ææè¿ä¸ªclassç´æ¥å è½½æé®éåº |
| | | if ($("*").hasClass("information-container")) { |
| | | $(".information-container").append(btnExport); |
| | | return; |
| | | } |
| | | //没æå
ç´ çå¾
å
ç´ åºç°å¨å è½½æé® |
| | | timerLoadExportBtn = setInterval(function () { |
| | | if ($("*").hasClass("information-container")) { |
| | | $(".information-container").append(btnExport); |
| | | console.log("load ok"); |
| | | window.clearInterval(timerLoadExportBtn); |
| | | return; |
| | | } |
| | | console.log("loading"); |
| | | }, 788); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * å»¶è¿å½æ° |
| | | * @param {any} delay |
| | | */ |
| | | function sleep(delay) { |
| | | var start = (new Date()).getTime(); |
| | | while ((new Date()).getTime() - start < delay) { |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | /* |
| | | * å¯¼åº |
| | | */ |
| | | function ExportApiWord(type) { |
| | | switch (type) { |
| | | case 1: |
| | | exten = ".docx"; |
| | | break; |
| | | case 2: |
| | | exten = ".pdf"; |
| | | break; |
| | | case 3: |
| | | exten = ".html"; |
| | | break; |
| | | case 4: |
| | | exten = ".xml"; |
| | | break; |
| | | case 5: |
| | | exten = ".svg"; |
| | | break; |
| | | } |
| | | var version = $("#select option:selected").val(); |
| | | version = version.split('/')[2]; |
| | | var url = '/api/Swagger/ExportWord?type=' + exten + "&version=" + version; |
| | | var xhr = new XMLHttpRequest(); |
| | | xhr.open('GET', url, true); // ä¹å¯ä»¥ä½¿ç¨POSTæ¹å¼ï¼æ ¹æ®æ¥å£ |
| | | xhr.responseType = "blob"; // è¿åç±»åblob |
| | | // å®ä¹è¯·æ±å®æçå¤ç彿°ï¼è¯·æ±åä¹å¯ä»¥å¢å å è½½æ¡/ç¦ç¨ä¸è½½æé®é»è¾ |
| | | xhr.onload = function () { |
| | | // 请æ±å®æ |
| | | if (this.status === 200) { |
| | | // è¿å200 |
| | | var blob = this.response; |
| | | var reader = new FileReader(); |
| | | reader.readAsDataURL(blob); // 转æ¢ä¸ºbase64ï¼å¯ä»¥ç´æ¥æ¾å
¥a表æ
href |
| | | reader.onload = function(e) { |
| | | // 转æ¢å®æï¼å建ä¸ä¸ªaæ ç¾ç¨äºä¸è½½ |
| | | var a = document.createElement('a'); |
| | | a.download = 'WIDESEAWCS APIææ¡£ ' + version + exten; |
| | | a.href = e.target.result; |
| | | $("body").append(a); // ä¿®å¤firefox䏿 æ³è§¦åclick |
| | | a.click(); |
| | | $(a).remove(); |
| | | } |
| | | } else { |
| | | alert(this.status+this.statusText); |
| | | } |
| | | //å
³éload |
| | | $.busyLoadFull('hide', |
| | | { |
| | | animation: "fade" |
| | | }); |
| | | }; |
| | | // åéajaxè¯·æ± |
| | | xhr.send(); |
| | | //æå¼loaderé®ç½© |
| | | $.busyLoadFull('show', { |
| | | text: "LOADING ...", |
| | | animation: "fade" |
| | | }); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.BaseRepository; |
| | | using WIDESEAWCS_ISystemRepository; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | | namespace WIDESEAWCS_SystemRepository |
| | | { |
| | | public class Sys_LogRepository : RepositoryBase<Sys_Log>, ISys_LogRepository |
| | | { |
| | | public Sys_LogRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) |
| | | { |
| | | } |
| | | } |
| | | } |
| | |
| | | List<string> cacheDicNos = new List<string>(); |
| | | foreach (string n in dicNos) |
| | | { |
| | | string str = _cacheService.Get(n); |
| | | string? str = _cacheService.Get(n); |
| | | if (!string.IsNullOrEmpty(str)) |
| | | { |
| | | VueDictionaryDTO? vueDictionary = JsonConvert.DeserializeObject<VueDictionaryDTO>(str); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_ISystemRepository; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | | namespace WIDESEAWCS_SystemServices |
| | | { |
| | | public class Sys_LogService : ServiceBase<Sys_Log, ISys_LogRepository>, ISys_LogService |
| | | { |
| | | public Sys_LogService(ISys_LogRepository BaseDal) : base(BaseDal) |
| | | { |
| | | } |
| | | } |
| | | } |
| | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using AutoMapper; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using System.Linq; |
| | | using System.Reflection; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |