diff --git a/PVDEMCS/.vs/PVDEMCS/DesignTimeBuild/.dtbcache.v2 b/PVDEMCS/.vs/PVDEMCS/DesignTimeBuild/.dtbcache.v2
index b84394e..529972e 100644
Binary files a/PVDEMCS/.vs/PVDEMCS/DesignTimeBuild/.dtbcache.v2 and b/PVDEMCS/.vs/PVDEMCS/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/3bbe660f-637a-47a6-b0d3-bc15df5636fa.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/3bbe660f-637a-47a6-b0d3-bc15df5636fa.vsidx
new file mode 100644
index 0000000..4ffa1e1
Binary files /dev/null and b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/3bbe660f-637a-47a6-b0d3-bc15df5636fa.vsidx differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/6f27c02a-3fac-4d1d-a802-e4ad67f9fe75.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/6f27c02a-3fac-4d1d-a802-e4ad67f9fe75.vsidx
deleted file mode 100644
index a7d76f1..0000000
Binary files a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/6f27c02a-3fac-4d1d-a802-e4ad67f9fe75.vsidx and /dev/null differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/8f59b6f4-9440-48cf-b0d4-a65d1d6e65be.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/8f59b6f4-9440-48cf-b0d4-a65d1d6e65be.vsidx
new file mode 100644
index 0000000..a890758
Binary files /dev/null and b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/8f59b6f4-9440-48cf-b0d4-a65d1d6e65be.vsidx differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/b102bcf4-d060-43f9-aede-c72bb56af670.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/b102bcf4-d060-43f9-aede-c72bb56af670.vsidx
new file mode 100644
index 0000000..afb7ddb
Binary files /dev/null and b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/b102bcf4-d060-43f9-aede-c72bb56af670.vsidx differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/beefb1a4-523c-4885-8846-8e71af5c506d.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/beefb1a4-523c-4885-8846-8e71af5c506d.vsidx
new file mode 100644
index 0000000..f908ac6
Binary files /dev/null and b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/beefb1a4-523c-4885-8846-8e71af5c506d.vsidx differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/c0c0b20e-7761-4c36-86c4-af2bd2e8ff8e.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/c0c0b20e-7761-4c36-86c4-af2bd2e8ff8e.vsidx
deleted file mode 100644
index abdc466..0000000
Binary files a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/c0c0b20e-7761-4c36-86c4-af2bd2e8ff8e.vsidx and /dev/null differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/c2b6a477-ffc0-4b96-9f41-5ef42afea515.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/c2b6a477-ffc0-4b96-9f41-5ef42afea515.vsidx
deleted file mode 100644
index 5220125..0000000
Binary files a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/c2b6a477-ffc0-4b96-9f41-5ef42afea515.vsidx and /dev/null differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/de98fe99-bc94-4cc5-a6a4-ee876d8c7fdf.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/de98fe99-bc94-4cc5-a6a4-ee876d8c7fdf.vsidx
new file mode 100644
index 0000000..a089cde
Binary files /dev/null and b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/de98fe99-bc94-4cc5-a6a4-ee876d8c7fdf.vsidx differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/f002133d-1702-40f9-95f1-1ad85f64e814.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/f002133d-1702-40f9-95f1-1ad85f64e814.vsidx
deleted file mode 100644
index a220280..0000000
Binary files a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/f002133d-1702-40f9-95f1-1ad85f64e814.vsidx and /dev/null differ
diff --git a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/fa56f31a-c306-4a29-a5a6-ed1b982fd6da.vsidx b/PVDEMCS/.vs/PVDEMCS/FileContentIndex/fa56f31a-c306-4a29-a5a6-ed1b982fd6da.vsidx
deleted file mode 100644
index 9a6d64a..0000000
Binary files a/PVDEMCS/.vs/PVDEMCS/FileContentIndex/fa56f31a-c306-4a29-a5a6-ed1b982fd6da.vsidx and /dev/null differ
diff --git a/PVDEMCS/.vs/PVDEMCS/v17/.futdcache.v2 b/PVDEMCS/.vs/PVDEMCS/v17/.futdcache.v2
index 3325ab1..75b9161 100644
Binary files a/PVDEMCS/.vs/PVDEMCS/v17/.futdcache.v2 and b/PVDEMCS/.vs/PVDEMCS/v17/.futdcache.v2 differ
diff --git a/PVDEMCS/.vs/PVDEMCS/v17/.suo b/PVDEMCS/.vs/PVDEMCS/v17/.suo
index 0d77d1f..028e477 100644
Binary files a/PVDEMCS/.vs/PVDEMCS/v17/.suo and b/PVDEMCS/.vs/PVDEMCS/v17/.suo differ
diff --git a/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.metadata.v7.bin b/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.metadata.v7.bin
index aa9a4ea..fae9957 100644
Binary files a/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.metadata.v7.bin and b/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.metadata.v7.bin differ
diff --git a/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.projects.v7.bin b/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.projects.v7.bin
index 316d226..d12101f 100644
Binary files a/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.projects.v7.bin and b/PVDEMCS/.vs/ProjectEvaluation/pvdemcs.projects.v7.bin differ
diff --git a/PVDEMCS/PVDEMCS/Common/Devices/IPLCCommunicationService.cs b/PVDEMCS/PVDEMCS/Common/Devices/IPLCCommunicationService.cs
index 4171702..f888f8c 100644
--- a/PVDEMCS/PVDEMCS/Common/Devices/IPLCCommunicationService.cs
+++ b/PVDEMCS/PVDEMCS/Common/Devices/IPLCCommunicationService.cs
@@ -27,116 +27,116 @@ namespace PVDEMCS.Common.Devices
///
///
///
- PLCResult Connection(string address, int port = 0);
+ Result Connection(string address, int port = 0);
///
/// 关闭连接PLC(长连接)
///
- PLCResult ColseConnection();
+ Result ColseConnection();
///
/// 读取指定地址的byte[]值
///
///
///
- PLCResult ReadBytes(string address, ushort length);
+ Result ReadBytes(string address, ushort length);
///
/// 读取指定地址的bool值
///
///
///
- PLCResult ReadBool(string address);
+ Result ReadBool(string address);
///
/// 读取指定地址的byte值
///
///
///
- PLCResult ReadByte(string address);
+ Result ReadByte(string address);
///
/// 读取指定地址的Int16值
///
///
///
- PLCResult ReadInt16(string address);
+ Result ReadInt16(string address);
///
/// 读取指定地址的Int32值
///
///
///
- PLCResult ReadInt32(string address);
+ Result ReadInt32(string address);
///
/// 读取指定地址的long值
///
///
///
- PLCResult ReadLong(string address);
+ Result ReadLong(string address);
///
/// 读取指定地址的Float值
///
///
- PLCResult ReadFloat(string address);
+ Result ReadFloat(string address);
///
/// 读取指定地址的double值
///
///
- PLCResult ReadDouble(string address);
+ Result ReadDouble(string address);
///
/// 写入bool值
///
/// 写入地址
///
- PLCResult Write(string address, bool value);
+ Result Write(string address, bool value);
///
/// 写入byte值
///
/// 写入地址
///
- PLCResult Write(string address, byte value);
+ Result Write(string address, byte value);
///
/// 写入Int16值
///
/// 写入地址
///
- PLCResult Write(string address, Int16 value);
+ Result Write(string address, Int16 value);
///
/// 写入Int32值
///
/// 写入地址
///
- PLCResult Write(string address, Int32 value);
+ Result Write(string address, Int32 value);
///
/// 写入float值
///
/// 写入地址
///
- PLCResult Write(string address, float value);
+ Result Write(string address, float value);
///
/// 写入double值
///
/// 写入地址
///
- PLCResult Write(string address, double value);
+ Result Write(string address, double value);
///
/// 写入long值
///
/// 写入地址
///
- PLCResult Write(string address, long value);
+ Result Write(string address, long value);
#endregion
@@ -146,115 +146,115 @@ namespace PVDEMCS.Common.Devices
///
///
///
- Task ConnectionAsync(string address, int port = 0);
+ Task ConnectionAsync(string address, int port = 0);
///
/// 关闭连接PLC(长连接)
///
- Task ColseConnectionAsyn();
+ Task ColseConnectionAsyn();
///
/// 读取指定地址的byte[]值
///
///
///
- Task> ReadBytesAsync(string address, ushort length);
+ Task> ReadBytesAsync(string address, ushort length);
///
/// 读取指定地址的bool值
///
///
///
- Task> ReadBoolAsync(string address);
+ Task> ReadBoolAsync(string address);
///
/// 读取指定地址的byte值
///
///
///
- Task> ReadByteAsync(string address);
+ Task> ReadByteAsync(string address);
///
/// 读取指定地址的Int16值
///
///
///
- Task> ReadInt16Async(string address);
+ Task> ReadInt16Async(string address);
///
/// 读取指定地址的Int32值
///
///
///
- Task> ReadInt32Async(string address);
+ Task> ReadInt32Async(string address);
///
/// 读取指定地址的long值
///
///
///
- Task> ReadLongAsync(string address);
+ Task> ReadLongAsync(string address);
///
/// 读取指定地址的Float值
///
///
- Task> ReadFloatAsync(string address);
+ Task> ReadFloatAsync(string address);
///
/// 读取指定地址的double值
///
///
- Task> ReadDoubleAsync(string address);
+ Task> ReadDoubleAsync(string address);
///
/// 写入bool值
///
/// 写入地址
///
- Task WriteAsync(string address, bool value);
+ Task WriteAsync(string address, bool value);
///
/// 写入byte值
///
/// 写入地址
///
- Task WriteAsync(string address, byte value);
+ Task WriteAsync(string address, byte value);
///
/// 写入Int16值
///
/// 写入地址
///
- Task WriteAsync(string address, Int16 value);
+ Task WriteAsync(string address, Int16 value);
///
/// 写入Int32值
///
/// 写入地址
///
- Task WriteAsync(string address, Int32 value);
+ Task WriteAsync(string address, Int32 value);
///
/// 写入float值
///
/// 写入地址
///
- Task WriteAsync(string address, float value);
+ Task WriteAsync(string address, float value);
///
/// 写入double值
///
/// 写入地址
///
- Task WriteAsync(string address, double value);
+ Task WriteAsync(string address, double value);
///
/// 写入long值
///
/// 写入地址
///
- Task WriteAsync(string address, long value);
+ Task WriteAsync(string address, long value);
#endregion
}
diff --git a/PVDEMCS/PVDEMCS/Common/Devices/Impl/S7CommunicationService.cs b/PVDEMCS/PVDEMCS/Common/Devices/Impl/S7CommunicationService.cs
index 05525be..840aecb 100644
--- a/PVDEMCS/PVDEMCS/Common/Devices/Impl/S7CommunicationService.cs
+++ b/PVDEMCS/PVDEMCS/Common/Devices/Impl/S7CommunicationService.cs
@@ -12,7 +12,6 @@ using HslCommunication.Core;
using HslCommunication;
using HslCommunication.Profinet.Siemens;
using HslCommunication.Reflection;
-using PVDEMCS.Common.Devices;
using PVDEMCS.Common.Tools;
namespace PVDEMCS.Common.Devices.Impl
@@ -62,7 +61,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public PLCResult Connection(string address, int port = 0)
+ public Result Connection(string address, int port = 0)
{
siemensS7Net.IpAddress = address;
if (port > 0)
@@ -81,7 +80,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 关闭连接PLC(长连接)
///
- public PLCResult ColseConnection()
+ public Result ColseConnection()
{
var operateResult = siemensS7Net.ConnectClose();
var result = ConvertResult(operateResult);
@@ -96,7 +95,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public PLCResult ReadBytes(string address, ushort length)
+ public Result ReadBytes(string address, ushort length)
{
var operateResult = siemensS7Net.Read(address, length);
var result = ConvertResult(operateResult);
@@ -107,7 +106,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public PLCResult ReadBool(string address)
+ public Result ReadBool(string address)
{
var operateResult = siemensS7Net.ReadBool(address);
var result = ConvertResult(operateResult);
@@ -119,7 +118,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public PLCResult ReadByte(string address)
+ public Result ReadByte(string address)
{
var operateResult = siemensS7Net.ReadByte(address);
var result = ConvertResult(operateResult);
@@ -131,7 +130,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public PLCResult ReadInt16(string address)
+ public Result ReadInt16(string address)
{
var operateResult = siemensS7Net.ReadInt16(address);
var result = ConvertResult(operateResult);
@@ -143,7 +142,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public PLCResult ReadInt32(string address)
+ public Result ReadInt32(string address)
{
var operateResult = siemensS7Net.ReadInt32(address);
var result = ConvertResult(operateResult);
@@ -155,7 +154,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public PLCResult ReadLong(string address)
+ public Result ReadLong(string address)
{
var operateResult = siemensS7Net.ReadInt64(address);
var result = ConvertResult(operateResult);
@@ -166,7 +165,7 @@ namespace PVDEMCS.Common.Devices.Impl
/// 读取指定地址的Float值
///
///
- public PLCResult ReadFloat(string address)
+ public Result ReadFloat(string address)
{
var operateResult = siemensS7Net.ReadFloat(address);
var result = ConvertResult(operateResult);
@@ -177,7 +176,7 @@ namespace PVDEMCS.Common.Devices.Impl
/// 读取指定地址的double值
///
///
- public PLCResult ReadDouble(string address)
+ public Result ReadDouble(string address)
{
var operateResult = siemensS7Net.ReadDouble(address);
var result = ConvertResult(operateResult);
@@ -189,7 +188,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public PLCResult Write(string address, bool value)
+ public Result Write(string address, bool value)
{
var operateResult = siemensS7Net.Write(address, value);
var result = ConvertResult(operateResult);
@@ -201,7 +200,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public PLCResult Write(string address, byte value)
+ public Result Write(string address, byte value)
{
var operateResult = siemensS7Net.Write(address, value);
var result = ConvertResult(operateResult);
@@ -214,7 +213,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public PLCResult Write(string address, Int16 value)
+ public Result Write(string address, Int16 value)
{
var operateResult = siemensS7Net.Write(address, value);
var result = ConvertResult(operateResult);
@@ -226,7 +225,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public PLCResult Write(string address, Int32 value)
+ public Result Write(string address, Int32 value)
{
var operateResult = siemensS7Net.Write(address, value);
var result = ConvertResult(operateResult);
@@ -238,7 +237,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public PLCResult Write(string address, float value)
+ public Result Write(string address, float value)
{
var operateResult = siemensS7Net.Write(address, value);
var result = ConvertResult(operateResult);
@@ -250,7 +249,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public PLCResult Write(string address, double value)
+ public Result Write(string address, double value)
{
var operateResult = siemensS7Net.Write(address, value);
var result = ConvertResult(operateResult);
@@ -262,7 +261,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public PLCResult Write(string address, long value)
+ public Result Write(string address, long value)
{
var operateResult = siemensS7Net.Write(address, value);
var result = ConvertResult(operateResult);
@@ -277,7 +276,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public async Task ConnectionAsync(string address, int port = 0)
+ public async Task ConnectionAsync(string address, int port = 0)
{
siemensS7Net.IpAddress = address;
if (port > 0)
@@ -296,7 +295,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 关闭连接PLC(长连接)
///
- public async Task ColseConnectionAsyn()
+ public async Task ColseConnectionAsyn()
{
var operateResult = await siemensS7Net.ConnectCloseAsync();
var result = ConvertResult(operateResult);
@@ -311,7 +310,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public async Task> ReadBytesAsync(string address, ushort length)
+ public async Task> ReadBytesAsync(string address, ushort length)
{
var operateResult = await siemensS7Net.ReadAsync(address, length);
var result = ConvertResult(operateResult);
@@ -322,7 +321,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public async Task> ReadBoolAsync(string address)
+ public async Task> ReadBoolAsync(string address)
{
var operateResult = await siemensS7Net.ReadBoolAsync(address);
var result = ConvertResult(operateResult);
@@ -334,7 +333,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public async Task> ReadByteAsync(string address)
+ public async Task> ReadByteAsync(string address)
{
var operateResult = await siemensS7Net.ReadByteAsync(address);
var result = ConvertResult(operateResult);
@@ -346,7 +345,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public async Task> ReadInt16Async(string address)
+ public async Task> ReadInt16Async(string address)
{
var operateResult = await siemensS7Net.ReadInt16Async(address);
var result = ConvertResult(operateResult);
@@ -358,7 +357,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public async Task> ReadInt32Async(string address)
+ public async Task> ReadInt32Async(string address)
{
var operateResult = await siemensS7Net.ReadInt32Async(address);
var result = ConvertResult(operateResult);
@@ -370,7 +369,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
///
- public async Task> ReadLongAsync(string address)
+ public async Task> ReadLongAsync(string address)
{
var operateResult = await siemensS7Net.ReadInt64Async(address);
var result = ConvertResult(operateResult);
@@ -381,7 +380,7 @@ namespace PVDEMCS.Common.Devices.Impl
/// 读取指定地址的Float值
///
///
- public async Task> ReadFloatAsync(string address)
+ public async Task> ReadFloatAsync(string address)
{
var operateResult = await siemensS7Net.ReadFloatAsync(address);
var result = ConvertResult(operateResult);
@@ -392,7 +391,7 @@ namespace PVDEMCS.Common.Devices.Impl
/// 读取指定地址的double值
///
///
- public async Task> ReadDoubleAsync(string address)
+ public async Task> ReadDoubleAsync(string address)
{
var operateResult = await siemensS7Net.ReadDoubleAsync(address);
var result = ConvertResult(operateResult);
@@ -404,7 +403,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public async Task WriteAsync(string address, bool value)
+ public async Task WriteAsync(string address, bool value)
{
var operateResult = await siemensS7Net.WriteAsync(address, value);
var result = ConvertResult(operateResult);
@@ -416,7 +415,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public async Task WriteAsync(string address, byte value)
+ public async Task WriteAsync(string address, byte value)
{
var operateResult = await siemensS7Net.WriteAsync(address, value);
@@ -429,7 +428,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public async Task WriteAsync(string address, Int16 value)
+ public async Task WriteAsync(string address, Int16 value)
{
var operateResult = await siemensS7Net.WriteAsync(address, value);
var result = ConvertResult(operateResult);
@@ -441,7 +440,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public async Task WriteAsync(string address, Int32 value)
+ public async Task WriteAsync(string address, Int32 value)
{
var operateResult = await siemensS7Net.WriteAsync(address, value);
var result = ConvertResult(operateResult);
@@ -453,7 +452,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public async Task WriteAsync(string address, float value)
+ public async Task WriteAsync(string address, float value)
{
var operateResult = await siemensS7Net.WriteAsync(address, value);
var result = ConvertResult(operateResult);
@@ -465,7 +464,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public async Task WriteAsync(string address, double value)
+ public async Task WriteAsync(string address, double value)
{
var operateResult = await siemensS7Net.WriteAsync(address, value);
var result = ConvertResult(operateResult);
@@ -477,7 +476,7 @@ namespace PVDEMCS.Common.Devices.Impl
///
/// 写入地址
///
- public async Task WriteAsync(string address, long value)
+ public async Task WriteAsync(string address, long value)
{
var operateResult = await siemensS7Net.WriteAsync(address, value);
var result = ConvertResult(operateResult);
@@ -493,9 +492,9 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
- private PLCResult ConvertResult(OperateResult result)
+ private Result ConvertResult(OperateResult result)
{
- var retResult = ModelTools.PubClone.Trans(result);
+ var retResult = ModelTools.PubClone.Trans(result);
return retResult;
}
@@ -505,9 +504,9 @@ namespace PVDEMCS.Common.Devices.Impl
///
///
- private PLCResult ConvertResult(OperateResult result)
+ private Result ConvertResult(OperateResult result)
{
- var retResult = ModelTools.PubClone, PLCResult>.Trans(result);
+ var retResult = ModelTools.PubClone, Result>.Trans(result);
retResult.Content = result.Content;
return retResult;
}
diff --git a/PVDEMCS/PVDEMCS/Common/Devices/PLCResult.cs b/PVDEMCS/PVDEMCS/Common/Result.cs
similarity index 72%
rename from PVDEMCS/PVDEMCS/Common/Devices/PLCResult.cs
rename to PVDEMCS/PVDEMCS/Common/Result.cs
index 8f32596..ad001c6 100644
--- a/PVDEMCS/PVDEMCS/Common/Devices/PLCResult.cs
+++ b/PVDEMCS/PVDEMCS/Common/Result.cs
@@ -5,29 +5,29 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace PVDEMCS.Common.Devices
+namespace PVDEMCS.Common
{
- public class PLCResult
+ public class Result
{
//
// 摘要:
// 指示本次操作是否成功。
// Indicates whether this operation was successful.
- public bool IsSuccess { get; set; }
+ public bool IsSuccess { get; set; } = true;
//
// 摘要:
// 具体的错误描述。
// Specific error description.
- public string Message { get; set; }
+ public string Message { get; set; }
- public int ErrorCode { get; set; }
+ public int ErrorCode { get; set; }
//
// 摘要:
// 实例化一个默认的结果对象
- public PLCResult()
+ public Result()
{
}
@@ -38,8 +38,9 @@ namespace PVDEMCS.Common.Devices
// 参数:
// msg:
// 错误消息
- public PLCResult(string msg)
+ public Result(string msg)
{
+ IsSuccess = false;
Message = msg;
}
@@ -53,23 +54,24 @@ namespace PVDEMCS.Common.Devices
//
// msg:
// 错误消息
- public PLCResult(int err, string msg)
+ public Result(int err, string msg)
{
+ IsSuccess = false;
ErrorCode = err;
Message = msg;
}
}
- public class PLCResult : PLCResult
+ public class Result : Result
{
public T Content { get; set; }
- public PLCResult()
+ public Result()
{
-
+
}
- public PLCResult(T content)
+ public Result(T content)
{
Content = content;
}
diff --git a/PVDEMCS/PVDEMCS/Common/Tools/ModelTools.cs b/PVDEMCS/PVDEMCS/Common/Tools/ModelTools.cs
index 31c2c30..9a9a0b0 100644
--- a/PVDEMCS/PVDEMCS/Common/Tools/ModelTools.cs
+++ b/PVDEMCS/PVDEMCS/Common/Tools/ModelTools.cs
@@ -1,4 +1,5 @@
-using System;
+using AngleSharp.Dom;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
@@ -65,5 +66,31 @@ namespace PVDEMCS.Common.Tools
return result;
}
}
+
+ public static void SetUpdateModel(TEntity entity)
+ {
+ foreach (var item in typeof(TEntity).GetProperties())
+ {
+ if (!item.CanWrite)
+ {
+ continue;
+ }
+
+ var _Property = typeof(TEntity).GetProperty(item.Name);
+ if (_Property == null)
+ {
+ continue;
+ }
+ if (item.PropertyType.FullName != _Property.PropertyType.FullName)
+ {
+ continue;
+ }
+
+ if (item.Name == "")
+ {
+
+ }
+ }
+ }
}
}
diff --git a/PVDEMCS/PVDEMCS/Controllers/WeatherForecastController.cs b/PVDEMCS/PVDEMCS/Controllers/WeatherForecastController.cs
index 1b6c377..c241235 100644
--- a/PVDEMCS/PVDEMCS/Controllers/WeatherForecastController.cs
+++ b/PVDEMCS/PVDEMCS/Controllers/WeatherForecastController.cs
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Mvc;
+using PVDEMCS.Services.Repositories.Entities;
namespace PVDEMCS.Controllers
{
@@ -21,6 +22,10 @@ namespace PVDEMCS.Controllers
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable Get()
{
+ using (var context = new EFContext())
+ {
+ var list = context.DeviceInfos.ToList();
+ }
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
diff --git a/PVDEMCS/PVDEMCS/PVDEMCS - Backup.csproj b/PVDEMCS/PVDEMCS/PVDEMCS - Backup.csproj
new file mode 100644
index 0000000..f4ecc56
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/PVDEMCS - Backup.csproj
@@ -0,0 +1,35 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+ ..\..\..\wisdomstation\guidescreen\GuideScreen\GuideScreen.Common\SDK\HslCommunication.dll
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PVDEMCS/PVDEMCS/PVDEMCS.csproj b/PVDEMCS/PVDEMCS/PVDEMCS.csproj
index b255d85..19c6802 100644
--- a/PVDEMCS/PVDEMCS/PVDEMCS.csproj
+++ b/PVDEMCS/PVDEMCS/PVDEMCS.csproj
@@ -11,6 +11,11 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
@@ -21,10 +26,7 @@
-
-
-
diff --git a/PVDEMCS/PVDEMCS/Program.cs b/PVDEMCS/PVDEMCS/Program.cs
index 9ac442b..0ec682e 100644
--- a/PVDEMCS/PVDEMCS/Program.cs
+++ b/PVDEMCS/PVDEMCS/Program.cs
@@ -1,4 +1,6 @@
+using Microsoft.EntityFrameworkCore;
using PVDEMCS.Common.DI;
+using System.Configuration;
var builder = WebApplication.CreateBuilder(args);
@@ -8,7 +10,14 @@ builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
+//ע
builder.AddAutofacExt();
+//
+//builder.Services.AddDbContext(options =>
+//{
+// options.UseMySQL(builder.Configuration.GetConnectionString("MySqlConnection"));
+
+//});
var app = builder.Build();
// Configure the HTTP request pipeline.
diff --git a/PVDEMCS/PVDEMCS/Services/Models/DeviceInfo.cs b/PVDEMCS/PVDEMCS/Services/Models/DeviceInfo.cs
new file mode 100644
index 0000000..15596f3
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Models/DeviceInfo.cs
@@ -0,0 +1,50 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+
+namespace PVDEMCS.Services.Models;
+
+///
+/// PLC控制器
+///
+public partial class DeviceInfo
+{
+ public string Id { get; set; }
+
+ ///
+ /// 控制器编号
+ ///
+ public string DeviceCode { get; set; }
+
+ ///
+ /// 控制器名称
+ ///
+ public string DeviceName { get; set; }
+
+ ///
+ /// 控制器状态,1:启用,0:停用
+ ///
+ public ulong Activated { get; set; }
+
+ ///
+ /// 控制器协议:PLC,HTTP,Socket
+ ///
+ public string Protocol { get; set; }
+
+ ///
+ /// 控制器主机地址
+ ///
+ public string Host { get; set; }
+
+ ///
+ /// 控制器主机端口
+ ///
+ public string Port { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Models/DevicePoint.cs b/PVDEMCS/PVDEMCS/Services/Models/DevicePoint.cs
new file mode 100644
index 0000000..5aa3cc1
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Models/DevicePoint.cs
@@ -0,0 +1,50 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+
+namespace PVDEMCS.Services.Models;
+
+///
+/// PLC点位
+///
+public partial class DevicePoint
+{
+ public string Id { get; set; }
+
+ ///
+ /// 控制器Id
+ ///
+ public string DeviceId { get; set; }
+
+ ///
+ /// 点位编号
+ ///
+ public string PointCode { get; set; }
+
+ ///
+ /// 点位名称
+ ///
+ public string PointName { get; set; }
+
+ ///
+ /// S7 数据存储地址,直连 存储区地址
+ ///
+ public string Address { get; set; }
+
+ ///
+ /// 字段类型
+ ///
+ public string Type { get; set; }
+
+ ///
+ /// PLC 点位是否启用 (1 启用, 0 禁用)
+ ///
+ public ulong Activated { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Models/EquipmentInfo.cs b/PVDEMCS/PVDEMCS/Services/Models/EquipmentInfo.cs
new file mode 100644
index 0000000..075daeb
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Models/EquipmentInfo.cs
@@ -0,0 +1,40 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+
+namespace PVDEMCS.Services.Models;
+
+///
+/// 设备信息
+///
+public partial class EquipmentInfo
+{
+ public string Id { get; set; }
+
+ ///
+ /// 设备编码
+ ///
+ public string EquipmentCode { get; set; }
+
+ ///
+ /// 设备名称
+ ///
+ public string EquipmentName { get; set; }
+
+ ///
+ /// 设备类型:Ionbond,Balzers,Cemecon
+ ///
+ public string EquipmentType { get; set; }
+
+ ///
+ /// 设备状态,1:启用,0:停用
+ ///
+ public ulong Activated { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Models/EquipmentRecord.cs b/PVDEMCS/PVDEMCS/Services/Models/EquipmentRecord.cs
new file mode 100644
index 0000000..c03c3a6
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Models/EquipmentRecord.cs
@@ -0,0 +1,35 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+
+namespace PVDEMCS.Services.Models;
+
+///
+/// 设备状态记录明显
+///
+public partial class EquipmentRecord
+{
+ public string Id { get; set; }
+
+ ///
+ /// 设备类型:Ionbond,Balzers,Cemecon
+ ///
+ public string EquipmentId { get; set; }
+
+ ///
+ /// 设备编码
+ ///
+ public string StartTime { get; set; }
+
+ ///
+ /// 设备名称
+ ///
+ public string EndTime { get; set; }
+
+ ///
+ /// 设备状态,1:运行,2:待机,3:报警
+ ///
+ public int State { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Models/EquipmentRecordTotal.cs b/PVDEMCS/PVDEMCS/Services/Models/EquipmentRecordTotal.cs
new file mode 100644
index 0000000..7085009
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Models/EquipmentRecordTotal.cs
@@ -0,0 +1,46 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+
+namespace PVDEMCS.Services.Models;
+
+///
+/// 设备状态记录日统计
+///
+///
+public partial class EquipmentRecordTotal
+{
+ public string Id { get; set; }
+
+ ///
+ /// 设备Id
+ ///
+ public string EquipmentId { get; set; }
+
+ ///
+ /// 开炉次数
+ ///
+ public int FurnaceNum { get; set; }
+
+ ///
+ /// 总运行时长
+ ///
+ public decimal TotalRunningTime { get; set; }
+
+ ///
+ /// 总报警时长
+ ///
+ public decimal TotalAlarmTime { get; set; }
+
+ ///
+ /// 总待机时长
+ ///
+ public decimal TotalAwaitTime { get; set; }
+
+ ///
+ /// 日期
+ ///
+ public DateTime? TotalDay { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Models/SysConfig.cs b/PVDEMCS/PVDEMCS/Services/Models/SysConfig.cs
new file mode 100644
index 0000000..a25daac
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Models/SysConfig.cs
@@ -0,0 +1,77 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+
+namespace PVDEMCS.Services.Models;
+
+///
+/// 参数配置表
+///
+public partial class SysConfig
+{
+ ///
+ /// 参数主键
+ ///
+ public int ConfigId { get; set; }
+
+ ///
+ /// 参数名称
+ ///
+ public string ConfigName { get; set; }
+
+ ///
+ /// 参数键名
+ ///
+ public string ConfigKey { get; set; }
+
+ ///
+ /// 参数键值
+ ///
+ public string ConfigValue { get; set; }
+
+ ///
+ /// 系统内置(Y是 N否)
+ ///
+ public string ConfigType { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+
+ ///
+ /// 创建者
+ ///
+ public string CreateBy { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime? CreateAt { get; set; }
+
+ ///
+ /// 更新者
+ ///
+ public string UpdateBy { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ public DateTime? UpdateAt { get; set; }
+
+ ///
+ /// 是否删除
+ ///
+ public ulong IsDelete { get; set; }
+
+ ///
+ /// 删除者
+ ///
+ public string DeleteBy { get; set; }
+
+ ///
+ /// 删除时间
+ ///
+ public DateTime? DeleteAt { get; set; }
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Models/SysUser.cs b/PVDEMCS/PVDEMCS/Services/Models/SysUser.cs
new file mode 100644
index 0000000..7c36f43
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Models/SysUser.cs
@@ -0,0 +1,117 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+
+namespace PVDEMCS.Services.Models;
+
+///
+/// 用户信息表
+///
+public partial class SysUser
+{
+ ///
+ /// 用户ID
+ ///
+ public long UserId { get; set; }
+
+ ///
+ /// 部门ID
+ ///
+ public long? DeptId { get; set; }
+
+ ///
+ /// 用户账号
+ ///
+ public string UserName { get; set; }
+
+ ///
+ /// 用户昵称
+ ///
+ public string NickName { get; set; }
+
+ ///
+ /// 用户类型(00系统用户)
+ ///
+ public string UserType { get; set; }
+
+ ///
+ /// 用户邮箱
+ ///
+ public string Email { get; set; }
+
+ ///
+ /// 手机号码
+ ///
+ public string Phonenumber { get; set; }
+
+ ///
+ /// 用户性别(0男 1女 2未知)
+ ///
+ public string Sex { get; set; }
+
+ ///
+ /// 头像地址
+ ///
+ public string Avatar { get; set; }
+
+ ///
+ /// 密码
+ ///
+ public string Password { get; set; }
+
+ ///
+ /// 帐号状态(0正常 1停用)
+ ///
+ public string Status { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+
+ ///
+ /// 最后登录IP
+ ///
+ public string LoginIp { get; set; }
+
+ ///
+ /// 最后登录时间
+ ///
+ public DateTime? LoginDate { get; set; }
+
+ ///
+ /// 创建者
+ ///
+ public string CreateBy { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime? CreateAt { get; set; }
+
+ ///
+ /// 更新者
+ ///
+ public string UpdateBy { get; set; }
+
+ ///
+ /// 更新时间
+ ///
+ public DateTime? UpdateAt { get; set; }
+
+ ///
+ /// 是否删除
+ ///
+ public ulong IsDelete { get; set; }
+
+ ///
+ /// 删除者
+ ///
+ public string DeleteBy { get; set; }
+
+ ///
+ /// 删除时间
+ ///
+ public DateTime? DeleteAt { get; set; }
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/BaseEntity/CUDBaseEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/BaseEntity/CUDBaseEntity.cs
new file mode 100644
index 0000000..d7d7274
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/BaseEntity/CUDBaseEntity.cs
@@ -0,0 +1,92 @@
+using Microsoft.EntityFrameworkCore;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using Masuit.Tools.Systems;
+
+namespace PVDEMCS.Services.Repositories.Entities.BaseEntity
+{
+ public abstract class BaseEntity
+ {
+ [Key]
+ [Column("id")]
+ [StringLength(64)]
+ public string Id { get; set; }
+ }
+
+ public abstract class CUBaseEntity : BaseEntity
+ {
+
+ ///
+ /// 创建者
+ ///
+ [Column("create_by")]
+ [StringLength(32)]
+ [MySqlCollation("utf8mb4_bin")]
+ public string CreateBy { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [Column("create_at", TypeName = "datetime")]
+ public DateTime? CreateAt { get; set; }
+
+ ///
+ /// 修改者
+ ///
+ [Column("update_by")]
+ [StringLength(32)]
+ [MySqlCollation("utf8mb4_bin")]
+ public string UpdateBy { get; set; }
+
+ ///
+ /// 修改时间
+ ///
+ [Column("update_at", TypeName = "datetime")]
+ public DateTime? UpdateAt { get; set; }
+
+ public void Update()
+ {
+ UpdateAt = DateTime.Now;
+ UpdateBy = "1";
+ }
+
+ public void Create()
+ {
+ Id = SnowFlakeNew.NewId;
+ CreateAt = DateTime.Now;
+ CreateBy = "1";
+ Update();
+ }
+ }
+
+ public abstract class CUDBaseEntity: CUBaseEntity
+ {
+
+ ///
+ /// 删除者
+ ///
+ [Column("delete_by")]
+ [StringLength(32)]
+ [MySqlCollation("utf8mb4_bin")]
+ public string DeleteBy { get; set; }
+
+ ///
+ /// 删除时间
+ ///
+ [Column("delete_at", TypeName = "datetime")]
+ public DateTime? DeleteAt { get; set; }
+
+ ///
+ /// 是否删除
+ ///
+ [Column("is_delete", TypeName = "bit(1)")]
+ public bool IsDelete { get; set; }
+
+ public void Delete()
+ {
+ DeleteAt = DateTime.Now;
+ DeleteBy = "1";
+ IsDelete = true;
+ }
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/DeviceInfoEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/DeviceInfoEntity.cs
new file mode 100644
index 0000000..ab8fbea
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/DeviceInfoEntity.cs
@@ -0,0 +1,72 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using PVDEMCS.Services.Repositories.Entities.BaseEntity;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+
+///
+/// PLC控制器
+///
+[Table("device_info")]
+public partial class DeviceInfoEntity : CUDBaseEntity
+{
+
+ ///
+ /// 控制器编号
+ ///
+ [Required]
+ [Column("device_code")]
+ [StringLength(32)]
+ public string DeviceCode { get; set; }
+
+ ///
+ /// 控制器名称
+ ///
+ [Required]
+ [Column("device_name")]
+ [StringLength(32)]
+ public string DeviceName { get; set; }
+
+ ///
+ /// 控制器状态,1:启用,0:停用
+ ///
+ [Column("activated", TypeName = "bit(1)")]
+ public bool Activated { get; set; }
+
+ ///
+ /// 控制器协议:PLC,HTTP,Socket
+ ///
+ [Required]
+ [Column("protocol")]
+ [StringLength(32)]
+ public string Protocol { get; set; }
+
+ ///
+ /// 控制器主机地址
+ ///
+ [Required]
+ [Column("host")]
+ [StringLength(32)]
+ public string Host { get; set; }
+
+ ///
+ /// 控制器主机端口
+ ///
+ [Required]
+ [Column("port")]
+ [StringLength(32)]
+ public string Port { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Column("remark")]
+ [StringLength(255)]
+ public string Remark { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/DevicePointEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/DevicePointEntity.cs
new file mode 100644
index 0000000..cad4aad
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/DevicePointEntity.cs
@@ -0,0 +1,72 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using PVDEMCS.Services.Repositories.Entities.BaseEntity;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+
+///
+/// PLC点位
+///
+[Table("device_point")]
+public partial class DevicePointEntity : CUDBaseEntity
+{
+
+ ///
+ /// 控制器Id
+ ///
+ [Required]
+ [Column("device_id")]
+ [StringLength(64)]
+ public string DeviceId { get; set; }
+
+ ///
+ /// 点位编号
+ ///
+ [Required]
+ [Column("point_code")]
+ [StringLength(32)]
+ public string PointCode { get; set; }
+
+ ///
+ /// 点位名称
+ ///
+ [Required]
+ [Column("point_name")]
+ [StringLength(32)]
+ public string PointName { get; set; }
+
+ ///
+ /// S7 数据存储地址,直连 存储区地址
+ ///
+ [Required]
+ [Column("address")]
+ [StringLength(64)]
+ public string Address { get; set; }
+
+ ///
+ /// 字段类型
+ ///
+ [Required]
+ [Column("type")]
+ [StringLength(32)]
+ public string Type { get; set; }
+
+ ///
+ /// PLC 点位是否启用 (1 启用, 0 禁用)
+ ///
+ [Column("activated", TypeName = "bit(1)")]
+ public ulong Activated { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Column("remark")]
+ [StringLength(255)]
+ public string Remark { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EFContext.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EFContext.cs
new file mode 100644
index 0000000..0e99015
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EFContext.cs
@@ -0,0 +1,252 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using System;
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using PVDEMCS.Services.Models;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+
+public partial class EFContext : DbContext
+{
+ private IConfiguration configuration;
+
+ public EFContext()
+ {
+ configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();
+ }
+
+ public EFContext(DbContextOptions options)
+ : base(options)
+ {
+ }
+
+ public virtual DbSet DeviceInfos { get; set; }
+
+ public virtual DbSet DevicePoints { get; set; }
+
+ public virtual DbSet EquipmentInfos { get; set; }
+
+ public virtual DbSet EquipmentRecords { get; set; }
+
+ public virtual DbSet EquipmentRecordTotals { get; set; }
+
+ public virtual DbSet SysConfigs { get; set; }
+
+ public virtual DbSet SysUsers { get; set; }
+
+ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
+#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.
+ => optionsBuilder.UseMySql(configuration.GetConnectionString("MySqlConnection"), Microsoft.EntityFrameworkCore.ServerVersion.Parse("8.0.34-mysql"));
+
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
+ {
+ modelBuilder
+ .UseCollation("utf8mb4_0900_ai_ci")
+ .HasCharSet("utf8mb4");
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PRIMARY");
+
+ entity.ToTable("device_info", tb => tb.HasComment("PLC控制器"));
+
+ entity.Property(e => e.Activated)
+ .HasDefaultValueSql("b'1'")
+ .HasComment("控制器状态,1:启用,0:停用");
+ entity.Property(e => e.CreateAt).HasComment("创建时间");
+ entity.Property(e => e.CreateBy).HasComment("创建者");
+ entity.Property(e => e.DeleteAt).HasComment("删除时间");
+ entity.Property(e => e.DeleteBy).HasComment("删除者");
+ entity.Property(e => e.DeviceCode).HasComment("控制器编号");
+ entity.Property(e => e.DeviceName).HasComment("控制器名称");
+ entity.Property(e => e.Host).HasComment("控制器主机地址");
+ entity.Property(e => e.IsDelete)
+ .HasDefaultValueSql("b'0'")
+ .HasComment("是否删除");
+ entity.Property(e => e.Port).HasComment("控制器主机端口");
+ entity.Property(e => e.Protocol).HasComment("控制器协议:PLC,HTTP,Socket");
+ entity.Property(e => e.Remark).HasComment("备注");
+ entity.Property(e => e.UpdateAt).HasComment("修改时间");
+ entity.Property(e => e.UpdateBy).HasComment("修改者");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PRIMARY");
+
+ entity.ToTable("device_point", tb => tb.HasComment("PLC点位"));
+
+ entity.Property(e => e.Activated)
+ .HasDefaultValueSql("b'1'")
+ .HasComment("PLC 点位是否启用 (1 启用, 0 禁用)");
+ entity.Property(e => e.Address).HasComment("S7 数据存储地址,直连 存储区地址");
+ entity.Property(e => e.CreateAt).HasComment("创建时间");
+ entity.Property(e => e.CreateBy).HasComment("创建者");
+ entity.Property(e => e.DeleteAt).HasComment("删除时间");
+ entity.Property(e => e.DeleteBy).HasComment("删除者");
+ entity.Property(e => e.DeviceId).HasComment("控制器Id");
+ entity.Property(e => e.IsDelete)
+ .HasDefaultValueSql("b'0'")
+ .HasComment("是否删除");
+ entity.Property(e => e.PointCode).HasComment("点位编号");
+ entity.Property(e => e.PointName).HasComment("点位名称");
+ entity.Property(e => e.Remark).HasComment("备注");
+ entity.Property(e => e.Type).HasComment("字段类型");
+ entity.Property(e => e.UpdateAt).HasComment("修改时间");
+ entity.Property(e => e.UpdateBy).HasComment("修改者");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PRIMARY");
+
+ entity.ToTable("equipment_info", tb => tb.HasComment("设备信息"));
+
+ entity.Property(e => e.Activated)
+ .HasDefaultValueSql("b'1'")
+ .HasComment("设备状态,1:启用,0:停用");
+ entity.Property(e => e.CreateAt).HasComment("创建时间");
+ entity.Property(e => e.CreateBy).HasComment("创建者");
+ entity.Property(e => e.DeleteAt).HasComment("删除时间");
+ entity.Property(e => e.DeleteBy).HasComment("删除者");
+ entity.Property(e => e.EquipmentCode).HasComment("设备编码");
+ entity.Property(e => e.EquipmentName).HasComment("设备名称");
+ entity.Property(e => e.EquipmentType).HasComment("设备类型:Ionbond,Balzers,Cemecon");
+ entity.Property(e => e.IsDelete)
+ .HasDefaultValueSql("b'0'")
+ .HasComment("是否删除");
+ entity.Property(e => e.Remark).HasComment("备注");
+ entity.Property(e => e.UpdateAt).HasComment("修改时间");
+ entity.Property(e => e.UpdateBy).HasComment("修改者");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PRIMARY");
+
+ entity.ToTable("equipment_record", tb => tb.HasComment("设备状态记录明显"));
+
+ entity.Property(e => e.CreateAt).HasComment("创建时间");
+ entity.Property(e => e.CreateBy).HasComment("创建者");
+ entity.Property(e => e.EndTime).HasComment("设备名称");
+ entity.Property(e => e.EquipmentId).HasComment("设备类型:Ionbond,Balzers,Cemecon");
+ entity.Property(e => e.StartTime).HasComment("设备编码");
+ entity.Property(e => e.State).HasComment("设备状态,1:运行,2:待机,3:报警");
+ entity.Property(e => e.UpdateAt).HasComment("修改时间");
+ entity.Property(e => e.UpdateBy).HasComment("修改者");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.Id).HasName("PRIMARY");
+
+ entity.ToTable("equipment_record_total", tb => tb.HasComment("设备状态记录日统计\r\n"));
+
+ entity.Property(e => e.CreateAt).HasComment("创建时间");
+ entity.Property(e => e.CreateBy).HasComment("创建者");
+ entity.Property(e => e.EquipmentId).HasComment("设备Id");
+ entity.Property(e => e.FurnaceNum).HasComment("开炉次数");
+ entity.Property(e => e.TotalAlarmTime).HasComment("总报警时长");
+ entity.Property(e => e.TotalAwaitTime).HasComment("总待机时长");
+ entity.Property(e => e.TotalDay).HasComment("日期");
+ entity.Property(e => e.TotalRunningTime).HasComment("总运行时长");
+ entity.Property(e => e.UpdateAt).HasComment("修改时间");
+ entity.Property(e => e.UpdateBy).HasComment("修改者");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.ConfigId).HasName("PRIMARY");
+
+ entity.ToTable("sys_config", tb => tb.HasComment("参数配置表"));
+
+ entity.Property(e => e.ConfigId).HasComment("参数主键");
+ entity.Property(e => e.ConfigKey)
+ .HasDefaultValueSql("''")
+ .HasComment("参数键名");
+ entity.Property(e => e.ConfigName)
+ .HasDefaultValueSql("''")
+ .HasComment("参数名称");
+ entity.Property(e => e.ConfigType)
+ .HasDefaultValueSql("'N'")
+ .IsFixedLength()
+ .HasComment("系统内置(Y是 N否)");
+ entity.Property(e => e.ConfigValue)
+ .HasDefaultValueSql("''")
+ .HasComment("参数键值");
+ entity.Property(e => e.CreateAt).HasComment("创建时间");
+ entity.Property(e => e.CreateBy)
+ .HasDefaultValueSql("''")
+ .HasComment("创建者");
+ entity.Property(e => e.DeleteAt).HasComment("删除时间");
+ entity.Property(e => e.DeleteBy).HasComment("删除者");
+ entity.Property(e => e.IsDelete)
+ .HasDefaultValueSql("b'0'")
+ .HasComment("是否删除");
+ entity.Property(e => e.Remark).HasComment("备注");
+ entity.Property(e => e.UpdateAt).HasComment("更新时间");
+ entity.Property(e => e.UpdateBy)
+ .HasDefaultValueSql("''")
+ .HasComment("更新者");
+ });
+
+ modelBuilder.Entity(entity =>
+ {
+ entity.HasKey(e => e.UserId).HasName("PRIMARY");
+
+ entity.ToTable("sys_user", tb => tb.HasComment("用户信息表"));
+
+ entity.Property(e => e.UserId).HasComment("用户ID");
+ entity.Property(e => e.Avatar)
+ .HasDefaultValueSql("''")
+ .HasComment("头像地址");
+ entity.Property(e => e.CreateAt).HasComment("创建时间");
+ entity.Property(e => e.CreateBy)
+ .HasDefaultValueSql("''")
+ .HasComment("创建者");
+ entity.Property(e => e.DeleteAt).HasComment("删除时间");
+ entity.Property(e => e.DeleteBy).HasComment("删除者");
+ entity.Property(e => e.DeptId).HasComment("部门ID");
+ entity.Property(e => e.Email)
+ .HasDefaultValueSql("''")
+ .HasComment("用户邮箱");
+ entity.Property(e => e.IsDelete)
+ .HasDefaultValueSql("b'0'")
+ .HasComment("是否删除");
+ entity.Property(e => e.LoginDate).HasComment("最后登录时间");
+ entity.Property(e => e.LoginIp)
+ .HasDefaultValueSql("''")
+ .HasComment("最后登录IP");
+ entity.Property(e => e.NickName).HasComment("用户昵称");
+ entity.Property(e => e.Password)
+ .HasDefaultValueSql("''")
+ .HasComment("密码");
+ entity.Property(e => e.Phonenumber)
+ .HasDefaultValueSql("''")
+ .HasComment("手机号码");
+ entity.Property(e => e.Remark).HasComment("备注");
+ entity.Property(e => e.Sex)
+ .HasDefaultValueSql("'0'")
+ .IsFixedLength()
+ .HasComment("用户性别(0男 1女 2未知)");
+ entity.Property(e => e.Status)
+ .HasDefaultValueSql("'0'")
+ .IsFixedLength()
+ .HasComment("帐号状态(0正常 1停用)");
+ entity.Property(e => e.UpdateAt).HasComment("更新时间");
+ entity.Property(e => e.UpdateBy)
+ .HasDefaultValueSql("''")
+ .HasComment("更新者");
+ entity.Property(e => e.UserName).HasComment("用户账号");
+ entity.Property(e => e.UserType)
+ .HasDefaultValueSql("'00'")
+ .HasComment("用户类型(00系统用户)");
+ });
+
+ OnModelCreatingPartial(modelBuilder);
+ }
+
+ partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentInfoEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentInfoEntity.cs
new file mode 100644
index 0000000..f4bd64e
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentInfoEntity.cs
@@ -0,0 +1,54 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using PVDEMCS.Services.Repositories.Entities.BaseEntity;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+///
+/// 设备信息
+///
+[Table("equipment_info")]
+public partial class EquipmentInfoEntity : CUDBaseEntity
+{
+ ///
+ /// 设备编码
+ ///
+ [Required]
+ [Column("equipment_code")]
+ [StringLength(32)]
+ public string EquipmentCode { get; set; }
+
+ ///
+ /// 设备名称
+ ///
+ [Required]
+ [Column("equipment_name")]
+ [StringLength(32)]
+ public string EquipmentName { get; set; }
+
+ ///
+ /// 设备类型:Ionbond,Balzers,Cemecon
+ ///
+ [Required]
+ [Column("equipment_type")]
+ [StringLength(32)]
+ public string EquipmentType { get; set; }
+
+ ///
+ /// 设备状态,1:启用,0:停用
+ ///
+ [Column("activated", TypeName = "bit(1)")]
+ public ulong Activated { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Column("remark")]
+ [StringLength(255)]
+ public string Remark { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentRecordEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentRecordEntity.cs
new file mode 100644
index 0000000..255dcd9
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentRecordEntity.cs
@@ -0,0 +1,50 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using PVDEMCS.Services.Repositories.Entities.BaseEntity;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+
+
+///
+/// 设备状态记录明显
+///
+[Table("equipment_record")]
+public partial class EquipmentRecordEntity : CUBaseEntity
+{
+
+ ///
+ /// 设备类型:Ionbond,Balzers,Cemecon
+ ///
+ [Required]
+ [Column("equipment_id")]
+ [StringLength(32)]
+ public string EquipmentId { get; set; }
+
+ ///
+ /// 设备编码
+ ///
+ [Required]
+ [Column("start_time")]
+ [StringLength(32)]
+ public string StartTime { get; set; }
+
+ ///
+ /// 设备名称
+ ///
+ [Required]
+ [Column("end_time")]
+ [StringLength(32)]
+ public string EndTime { get; set; }
+
+ ///
+ /// 设备状态,1:运行,2:待机,3:报警
+ ///
+ [Column("state")]
+ public int State { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentRecordTotalEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentRecordTotalEntity.cs
new file mode 100644
index 0000000..4fc7037
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/EquipmentRecordTotalEntity.cs
@@ -0,0 +1,62 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using PVDEMCS.Services.Repositories.Entities.BaseEntity;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+
+
+///
+/// 设备状态记录日统计
+///
+///
+[Table("equipment_record_total")]
+public partial class EquipmentRecordTotalEntity : CUBaseEntity
+{
+
+ ///
+ /// 设备Id
+ ///
+ [Required]
+ [Column("equipment_id")]
+ [StringLength(32)]
+ public string EquipmentId { get; set; }
+
+ ///
+ /// 开炉次数
+ ///
+ [Column("furnace_num")]
+ public int FurnaceNum { get; set; }
+
+ ///
+ /// 总运行时长
+ ///
+ [Column("total_running_time")]
+ [Precision(32, 2)]
+ public decimal TotalRunningTime { get; set; }
+
+ ///
+ /// 总报警时长
+ ///
+ [Column("total_alarm_time")]
+ [Precision(32, 2)]
+ public decimal TotalAlarmTime { get; set; }
+
+ ///
+ /// 总待机时长
+ ///
+ [Column("total_await_time")]
+ [Precision(32, 2)]
+ public decimal TotalAwaitTime { get; set; }
+
+ ///
+ /// 日期
+ ///
+ [Column("total_day", TypeName = "datetime")]
+ public DateTime? TotalDay { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/SysConfigEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/SysConfigEntity.cs
new file mode 100644
index 0000000..6b9dc00
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/SysConfigEntity.cs
@@ -0,0 +1,55 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using PVDEMCS.Services.Repositories.Entities.BaseEntity;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+
+///
+/// 参数配置表
+///
+[Table("sys_config")]
+[MySqlCollation("utf8mb4_bin")]
+public partial class SysConfigEntity:CUDBaseEntity
+{
+
+ ///
+ /// 参数名称
+ ///
+ [Column("config_name")]
+ [StringLength(100)]
+ public string ConfigName { get; set; }
+
+ ///
+ /// 参数键名
+ ///
+ [Column("config_key")]
+ [StringLength(100)]
+ public string ConfigKey { get; set; }
+
+ ///
+ /// 参数键值
+ ///
+ [Column("config_value")]
+ [StringLength(500)]
+ public string ConfigValue { get; set; }
+
+ ///
+ /// 系统内置(Y是 N否)
+ ///
+ [Column("config_type")]
+ [StringLength(1)]
+ public string ConfigType { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Column("remark")]
+ [StringLength(500)]
+ public string Remark { get; set; }
+
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Entities/SysUserEntity.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/SysUserEntity.cs
new file mode 100644
index 0000000..e68016b
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Entities/SysUserEntity.cs
@@ -0,0 +1,110 @@
+// This file has been auto generated by EF Core Power Tools.
+#nullable disable
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.ComponentModel.DataAnnotations;
+using PVDEMCS.Services.Repositories.Entities.BaseEntity;
+
+namespace PVDEMCS.Services.Repositories.Entities;
+
+///
+/// 用户信息表
+///
+[Table("sys_user")]
+[MySqlCollation("utf8mb4_bin")]
+public partial class SysUserEntity : CUDBaseEntity
+{
+
+ ///
+ /// 部门ID
+ ///
+ [Column("dept_id")]
+ public long? DeptId { get; set; }
+
+ ///
+ /// 用户账号
+ ///
+ [Required]
+ [Column("user_name")]
+ [StringLength(30)]
+ public string UserName { get; set; }
+
+ ///
+ /// 用户昵称
+ ///
+ [Required]
+ [Column("nick_name")]
+ [StringLength(30)]
+ public string NickName { get; set; }
+
+ ///
+ /// 用户类型(00系统用户)
+ ///
+ [Column("user_type")]
+ [StringLength(2)]
+ public string UserType { get; set; }
+
+ ///
+ /// 用户邮箱
+ ///
+ [Column("email")]
+ [StringLength(50)]
+ public string Email { get; set; }
+
+ ///
+ /// 手机号码
+ ///
+ [Column("phonenumber")]
+ [StringLength(11)]
+ public string Phonenumber { get; set; }
+
+ ///
+ /// 用户性别(0男 1女 2未知)
+ ///
+ [Column("sex")]
+ [StringLength(1)]
+ public string Sex { get; set; }
+
+ ///
+ /// 头像地址
+ ///
+ [Column("avatar")]
+ [StringLength(100)]
+ public string Avatar { get; set; }
+
+ ///
+ /// 密码
+ ///
+ [Column("password")]
+ [StringLength(100)]
+ public string Password { get; set; }
+
+ ///
+ /// 帐号状态(0正常 1停用)
+ ///
+ [Column("status")]
+ [StringLength(1)]
+ public string Status { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Column("remark")]
+ [StringLength(500)]
+ public string Remark { get; set; }
+
+ ///
+ /// 最后登录IP
+ ///
+ [Column("login_ip")]
+ [StringLength(128)]
+ public string LoginIp { get; set; }
+
+ ///
+ /// 最后登录时间
+ ///
+ [Column("login_date", TypeName = "datetime")]
+ public DateTime? LoginDate { get; set; }
+}
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/IDeviceRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/IDeviceRepository.cs
new file mode 100644
index 0000000..3fece05
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/IDeviceRepository.cs
@@ -0,0 +1,114 @@
+using Masuit.Tools.Models;
+using Masuit.Tools;
+using PVDEMCS.Common;
+using PVDEMCS.Common.DI;
+using PVDEMCS.Services.Repositories.Entities;
+
+namespace PVDEMCS.Services.Repositories
+{
+ /*
+ * PLC控制器 数据层 接口
+ */
+ public interface IDeviceRepository: IDependency
+ {
+ #region PLC控制器
+
+ ///
+ /// 获取PLC控制器分页列表
+ ///
+ /// 控制器编号
+ /// 控制器名称
+ /// 当前页
+ /// 页大小
+ ///
+ Result> GetDevicePageList(string deviceCode, string deviceName, bool? activated, int page, int size);
+
+ ///
+ /// 获取PLC控制器列表
+ ///
+ /// 控制器编号
+ /// 控制器名称
+ ///
+ Result> GetDeviceInfoList(string deviceCode, string deviceName, bool? activated = false);
+
+ ///
+ /// 获取PLC控制器明细
+ ///
+ /// 主键Id
+ ///
+ Result GetDeviceDetail(string id);
+
+ ///
+ /// 添加PLC控制器
+ ///
+ ///
+ ///
+ Result AddDevice(DeviceInfoEntity entity);
+
+ ///
+ /// 更新PLC控制器
+ ///
+ ///
+
+ Result UpdateDevice(DeviceInfoEntity entity);
+ ///
+ /// 删除PLC控制器
+ ///
+ ///
+ Result DeleteDevice(string id);
+
+ #endregion
+
+ #region PLC点位
+
+ ///
+ /// 获取PLC控制器点位分页列表
+ ///
+ /// 控制器Id
+ /// 点位编号
+ /// 点位列表
+ /// 当前页
+ /// 页大小
+ ///
+ Result> GetDevicePointPageList(string deviceId, string pointCode, string pointName, int page, int size);
+
+ ///
+ /// 获取PLC控制器点位分页列表
+ ///
+ /// 控制器Id
+ /// 点位编号
+ /// 点位列表
+ ///
+ List GetDevicePointList(string deviceId, string pointCode, string pointName);
+
+ ///
+ /// 获取PLC控制器点位明细
+ ///
+ /// Id
+ ///
+ Result GetDevicePointDetail(string id);
+
+ ///
+ /// 添加PLC控制器点位
+ ///
+ ///
+ ///
+ Result AddDevicePoint(DevicePointEntity entity);
+
+ ///
+ /// 更新PLC控制器点位
+ ///
+ ///
+ ///
+ Result UpdateDevicePoint(DevicePointEntity entity);
+
+ ///
+ /// 删除PLC控制器点位
+ ///
+ ///
+ ///
+ Result DeleteDevicePoint(string id);
+
+ #endregion
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/IEquipmentRecordRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/IEquipmentRecordRepository.cs
new file mode 100644
index 0000000..a818201
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/IEquipmentRecordRepository.cs
@@ -0,0 +1,13 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories
+{
+ /*
+ * 设备信息记录 数据层 接口
+ */
+ public interface IEquipmentRecordRepository : IDependency
+ {
+
+ }
+}
+
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/IEquipmentRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/IEquipmentRepository.cs
new file mode 100644
index 0000000..369f503
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/IEquipmentRepository.cs
@@ -0,0 +1,12 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories
+{
+ /*
+ * 设备管理 数据层 接口
+ */
+ public interface IEquipmentRepository : IDependency
+ {
+
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/ISysConfigRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/ISysConfigRepository.cs
new file mode 100644
index 0000000..5528501
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/ISysConfigRepository.cs
@@ -0,0 +1,12 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories
+{
+ /*
+ * 系统参数设置 数据层 接口
+ */
+ public interface ISysConfigRepository : IDependency
+ {
+
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/ISysUserRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/ISysUserRepository.cs
new file mode 100644
index 0000000..b3773f8
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/ISysUserRepository.cs
@@ -0,0 +1,12 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories
+{
+ /*
+ * 用户信息 数据层 接口
+ */
+ public interface ISysUserRepository: IDependency
+ {
+
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Impl/DeviceRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/DeviceRepository.cs
new file mode 100644
index 0000000..772bf5a
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/DeviceRepository.cs
@@ -0,0 +1,393 @@
+using AngleSharp.Dom;
+using Masuit.Tools;
+using Masuit.Tools.Models;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using PVDEMCS.Common;
+using PVDEMCS.Common.DI;
+using PVDEMCS.Services.Repositories.Entities;
+using SharpCompress.Common;
+using System;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
+
+namespace PVDEMCS.Services.Repositories.Impl
+{
+ /*
+ * PLC控制器 数据层 实现
+ */
+ internal class DeviceRepository : IDeviceRepository
+ {
+ #region PLC控制器
+
+ ///
+ /// 获取PLC控制器分页列表
+ ///
+ /// 控制器编号
+ /// 控制器名称
+ /// 当前页
+ /// 页大小
+ ///
+ public Result> GetDevicePageList(string deviceCode, string deviceName, bool? activated, int page, int size)
+ {
+ using (var context = new EFContext())
+ {
+ var query = context.DeviceInfos.Where(f => !f.IsDelete);
+
+ if (!deviceCode.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.DeviceCode.StartsWith(deviceCode));
+ }
+ if (!deviceName.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.DeviceName.StartsWith(deviceName));
+ }
+ if (activated.HasValue)
+ {
+ query = query.Where(f => f.Activated == activated.Value);
+ }
+ var result = query.OrderBy(f => f.CreateAt).ToPagedList(page, size);
+
+ return new Result>(result);
+ }
+ }
+
+ ///
+ /// 获取PLC控制器列表
+ ///
+ /// 控制器编号
+ /// 控制器名称
+ ///
+ public Result> GetDeviceInfoList(string deviceCode, string deviceName, bool? activated = false)
+ {
+ using (var context = new EFContext())
+ {
+ var query = context.DeviceInfos.Where(f => !f.IsDelete);
+
+ if (!deviceCode.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.DeviceCode.StartsWith(deviceCode));
+ }
+ if (!deviceName.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.DeviceName.StartsWith(deviceName));
+ }
+ if (activated.HasValue)
+ {
+ query = query.Where(f => f.Activated == activated.Value);
+ }
+ var result = query.OrderBy(f => f.CreateAt).ToList();
+
+ return new Result>(result);
+ }
+ }
+
+ ///
+ /// 获取PLC控制器明细
+ ///
+ /// 主键Id
+ ///
+ public Result GetDeviceDetail(string id)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+
+ var detail = context.DeviceInfos.Where(f => f.Id == id).FirstOrDefault();
+ if (detail == null)
+ {
+ result.Message = $"没有找到Id:{id}的数据";
+ return result;
+ }
+ result.Content= detail;
+ return result;
+ }
+ }
+
+ ///
+ /// 添加PLC控制器
+ ///
+ ///
+ ///
+ public Result AddDevice(DeviceInfoEntity entity)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+
+ var query = context.DeviceInfos.Where(f => !f.IsDelete);
+ if (query.Where(f => f.DeviceName == entity.DeviceName).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在名称为:{entity.DeviceName}的PLC控制器";
+ return result;
+ }
+ if (query.Where(f => f.DeviceCode == entity.DeviceCode).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在编号为:{entity.DeviceCode}的PLC控制器";
+ return result;
+ }
+
+ entity.Create();
+ context.DeviceInfos.Add(entity);
+ context.SaveChanges();
+
+ return new Result(entity.Id);
+ }
+ }
+
+ ///
+ /// 更新PLC控制器
+ ///
+ ///
+
+ public Result UpdateDevice(DeviceInfoEntity entity)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+
+ var query = context.DeviceInfos.Where(f => !f.IsDelete);
+ var update = query.Where(f => f.Id == entity.Id).FirstOrDefault();
+ if (update == null)
+ {
+ result.Message = $"没有找到Id:{entity.Id}的数据";
+ return result;
+ }
+ if (query.Where(f => f.DeviceName == entity.DeviceName && f.Id != entity.Id).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在名称为:{entity.DeviceName}的PLC控制器";
+ return result;
+ }
+ if (query.Where(f => f.DeviceCode == entity.DeviceCode && f.Id != entity.Id).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在编号为:{entity.DeviceCode}的PLC控制器";
+ return result;
+ }
+
+ update.DeviceCode = entity.DeviceCode;
+ update.DeviceName = entity.DeviceName;
+ update.Activated = entity.Activated;
+ update.Host = entity.Host;
+ update.Port = entity.Port;
+ update.Protocol = entity.Protocol;
+ update.Remark = entity.Remark;
+ entity.Update();
+ context.SaveChanges();
+
+ return result;
+ }
+ }
+ ///
+ /// 删除PLC控制器
+ ///
+ ///
+ public Result DeleteDevice(string id)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+ var entity = context.DeviceInfos.Where(f => f.Id == id).FirstOrDefault();
+ if (entity == null)
+ {
+ result.Message = $"没有找到Id:{id}的数据";
+ return result;
+
+ }
+
+ entity.Delete();
+ context.SaveChanges();
+
+ return result;
+ }
+ }
+
+
+ #endregion
+
+ #region PLC点位
+
+ ///
+ /// 获取PLC控制器点位分页列表
+ ///
+ /// 控制器Id
+ /// 点位编号
+ /// 点位列表
+ /// 当前页
+ /// 页大小
+ ///
+ public Result> GetDevicePointPageList(string deviceId, string pointCode, string pointName, int page, int size)
+ {
+ using (var context = new EFContext())
+ {
+ var query = context.DevicePoints.Where(f => !f.IsDelete);
+ if (!deviceId.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.DeviceId == deviceId);
+ }
+ if (!pointCode.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.PointCode.StartsWith(pointCode));
+ }
+ if (!pointName.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.PointName.StartsWith(pointName));
+ }
+ var pageList = query.OrderBy(f => f.CreateAt).ToPagedList(page, size);
+ return new Result>(pageList);
+ }
+ }
+
+
+ ///
+ /// 获取PLC控制器点位分页列表
+ ///
+ /// 控制器Id
+ /// 点位编号
+ /// 点位列表
+ ///
+ public List GetDevicePointList(string deviceId, string pointCode, string pointName)
+ {
+ using (var context = new EFContext())
+ {
+ var query = context.DevicePoints.Where(f => !f.IsDelete);
+ if (!deviceId.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.DeviceId == deviceId);
+ }
+ if (!pointCode.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.PointCode.StartsWith(pointCode));
+ }
+ if (!pointName.IsNullOrEmpty())
+ {
+ query = query.Where(f => f.PointName.StartsWith(pointName));
+ }
+ var list = query.ToList();
+ return list;
+ }
+ }
+
+ ///
+ /// 获取PLC控制器点位明细
+ ///
+ /// Id
+ ///
+ public Result GetDevicePointDetail(string id)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+
+ var entity = context.DevicePoints.Where(f => f.Id == id).FirstOrDefault();
+ if (entity == null)
+ {
+ result.Message = $"没有找到Id:{id}的数据";
+ return result;
+ }
+ result.Content = entity;
+
+ return result;
+ }
+ }
+
+ ///
+ /// 添加PLC控制器点位
+ ///
+ ///
+ ///
+ public Result AddDevicePoint(DevicePointEntity entity)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+
+ var query = context.DevicePoints.Where(f => !f.IsDelete);
+ if (query.Where(f => f.PointName == entity.PointName).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在名称为:{entity.PointName}的PLC控制器点位";
+ return result;
+ }
+ if (query.Where(f => f.PointCode == entity.PointCode).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在编号为:{entity.PointCode}的PLC控制器点位";
+ return result;
+ }
+
+ entity.Create();
+ context.DevicePoints.Add(entity);
+ context.SaveChanges();
+ result.Content = entity.Id;
+
+ return result;
+ }
+ }
+
+ ///
+ /// 更新PLC控制器点位
+ ///
+ ///
+ ///
+ public Result UpdateDevicePoint(DevicePointEntity entity)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+
+ var query = context.DevicePoints.Where(f => !f.IsDelete);
+ var update = query.Where(f => f.Id == entity.Id).FirstOrDefault();
+ if (update == null)
+ {
+ result.Message = $"没有找到Id:{entity.Id}的数据";
+ return result;
+ }
+ if (query.Where(f => f.PointName == entity.PointName && f.Id != entity.Id).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在名称为:{entity.PointName}的PLC控制器点位";
+ return result;
+ }
+ if (query.Where(f => f.PointCode == entity.PointCode && f.Id != entity.Id).FirstOrDefault() != null)
+ {
+ result.Message = $"已存在编号为:{entity.PointCode}的PLC控制器点位";
+ return result;
+ }
+
+ update.DeviceId = entity.DeviceId;
+ update.PointCode = entity.PointCode;
+ update.PointName = entity.PointName;
+ update.Activated = entity.Activated;
+ update.Address= entity.Address;
+ update.Type = entity.Type;
+ update.Remark= entity.Remark;
+ entity.Update();
+ context.SaveChanges();
+
+ return result;
+ }
+ }
+
+ ///
+ /// 删除PLC控制器点位
+ ///
+ ///
+ ///
+ public Result DeleteDevicePoint(string id)
+ {
+ using (var context = new EFContext())
+ {
+ var result = new Result();
+
+ var entity = context.DevicePoints.Where(f => f.Id == id).FirstOrDefault();
+ if (entity == null)
+ {
+ result.Message = $"没有找到Id:{id}的数据";
+ return result;
+ }
+
+ entity.Delete();
+ context.SaveChanges();
+
+ return result;
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Impl/EquipmentRecordRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/EquipmentRecordRepository.cs
new file mode 100644
index 0000000..5c93544
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/EquipmentRecordRepository.cs
@@ -0,0 +1,12 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories.Impl
+{
+ /*
+ * 用户操作 数据层 实现
+ */
+ internal class EquipmentRecordRepository : IEquipmentRecordRepository
+ {
+
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Impl/EquipmentRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/EquipmentRepository.cs
new file mode 100644
index 0000000..8861081
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/EquipmentRepository.cs
@@ -0,0 +1,12 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories
+{
+ /*
+ * 用户操作 数据层 实现
+ */
+ internal class EquipmentRepository : IEquipmentRepository
+ {
+
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Impl/SysConfigRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/SysConfigRepository.cs
new file mode 100644
index 0000000..22ee170
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/SysConfigRepository.cs
@@ -0,0 +1,12 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories.Impl
+{
+ /*
+ * 系统参数设置 数据层 实现
+ */
+ internal class SysConfigRepository : ISysConfigRepository
+ {
+
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/Services/Repositories/Impl/SysUserRepository.cs b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/SysUserRepository.cs
new file mode 100644
index 0000000..f535810
--- /dev/null
+++ b/PVDEMCS/PVDEMCS/Services/Repositories/Impl/SysUserRepository.cs
@@ -0,0 +1,12 @@
+using PVDEMCS.Common.DI;
+
+namespace PVDEMCS.Services.Repositories
+{
+ /*
+ * 用户信息 数据层 实现
+ */
+ internal class SysUserRepository: ISysUserRepository
+ {
+
+ }
+}
diff --git a/PVDEMCS/PVDEMCS/appsettings.json b/PVDEMCS/PVDEMCS/appsettings.json
index 10f68b8..c6d8708 100644
--- a/PVDEMCS/PVDEMCS/appsettings.json
+++ b/PVDEMCS/PVDEMCS/appsettings.json
@@ -1,4 +1,7 @@
{
+ "ConnectionStrings": {
+ "MySqlConnection": "Server=127.0.0.1;Port=3306;Database=pvdemcs;Uid=root;Pwd=123456;"
+ },
"Logging": {
"LogLevel": {
"Default": "Information",
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Humanizer.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Humanizer.dll
new file mode 100644
index 0000000..c9a7ef8
Binary files /dev/null and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Humanizer.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Design.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Design.dll
new file mode 100644
index 0000000..313474d
Binary files /dev/null and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Design.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Relational.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Relational.dll
new file mode 100644
index 0000000..adb86b2
Binary files /dev/null and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.EntityFrameworkCore.Relational.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.Extensions.DependencyModel.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000..072af1f
Binary files /dev/null and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Mono.TextTemplating.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Mono.TextTemplating.dll
new file mode 100644
index 0000000..d5a4b3c
Binary files /dev/null and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Mono.TextTemplating.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/MySqlConnector.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/MySqlConnector.dll
new file mode 100644
index 0000000..3cbe116
Binary files /dev/null and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/MySqlConnector.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.deps.json b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.deps.json
index dc23ffd..1df0112 100644
--- a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.deps.json
+++ b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.deps.json
@@ -12,6 +12,8 @@
"Autofac.Extensions.DependencyInjection": "8.0.0",
"Masuit.Tools.Core": "2.6.7.3",
"Microsoft.EntityFrameworkCore": "7.0.12",
+ "Microsoft.EntityFrameworkCore.Tools": "7.0.12",
+ "Pomelo.EntityFrameworkCore.MySql": "7.0.0",
"Swashbuckle.AspNetCore": "6.5.0",
"HslCommunication": "11.0.6.0"
},
@@ -100,6 +102,14 @@
}
}
},
+ "Humanizer.Core/2.14.1": {
+ "runtime": {
+ "lib/net6.0/Humanizer.dll": {
+ "assemblyVersion": "2.14.0.0",
+ "fileVersion": "2.14.1.48190"
+ }
+ }
+ },
"Masuit.Tools.Abstractions/2.6.7.3": {
"dependencies": {
"Castle.Core": "5.1.1",
@@ -159,6 +169,37 @@
}
},
"Microsoft.EntityFrameworkCore.Analyzers/7.0.12": {},
+ "Microsoft.EntityFrameworkCore.Design/7.0.12": {
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Microsoft.EntityFrameworkCore.Relational": "7.0.12",
+ "Microsoft.Extensions.DependencyModel": "7.0.0",
+ "Mono.TextTemplating": "2.2.1"
+ },
+ "runtime": {
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Design.dll": {
+ "assemblyVersion": "7.0.12.0",
+ "fileVersion": "7.0.1223.47811"
+ }
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Relational/7.0.12": {
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "7.0.12",
+ "Microsoft.Extensions.Configuration.Abstractions": "7.0.0"
+ },
+ "runtime": {
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll": {
+ "assemblyVersion": "7.0.12.0",
+ "fileVersion": "7.0.1223.47811"
+ }
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Tools/7.0.12": {
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Design": "7.0.12"
+ }
+ },
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {},
"Microsoft.Extensions.Caching.Abstractions/7.0.0": {
"dependencies": {
@@ -258,6 +299,18 @@
}
}
},
+ "Microsoft.Extensions.DependencyModel/7.0.0": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "7.0.0",
+ "System.Text.Json": "7.0.0"
+ },
+ "runtime": {
+ "lib/net6.0/Microsoft.Extensions.DependencyModel.dll": {
+ "assemblyVersion": "7.0.0.0",
+ "fileVersion": "7.0.22.51805"
+ }
+ }
+ },
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "7.0.0"
@@ -366,6 +419,25 @@
}
}
},
+ "Mono.TextTemplating/2.2.1": {
+ "dependencies": {
+ "System.CodeDom": "7.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Mono.TextTemplating.dll": {
+ "assemblyVersion": "2.2.0.0",
+ "fileVersion": "2.2.1.1"
+ }
+ }
+ },
+ "MySqlConnector/2.2.5": {
+ "runtime": {
+ "lib/net6.0/MySqlConnector.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.2.5.0"
+ }
+ }
+ },
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
@@ -374,6 +446,18 @@
}
}
},
+ "Pomelo.EntityFrameworkCore.MySql/7.0.0": {
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "7.0.12",
+ "MySqlConnector": "2.2.5"
+ },
+ "runtime": {
+ "lib/net6.0/Pomelo.EntityFrameworkCore.MySql.dll": {
+ "assemblyVersion": "7.0.0.0",
+ "fileVersion": "7.0.0.0"
+ }
+ }
+ },
"SharpCompress/0.34.1": {
"dependencies": {
"ZstdSharp.Port": "0.7.2"
@@ -706,6 +790,13 @@
"path": "htmlsanitizer/8.0.723",
"hashPath": "htmlsanitizer.8.0.723.nupkg.sha512"
},
+ "Humanizer.Core/2.14.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==",
+ "path": "humanizer.core/2.14.1",
+ "hashPath": "humanizer.core.2.14.1.nupkg.sha512"
+ },
"Masuit.Tools.Abstractions/2.6.7.3": {
"type": "package",
"serviceable": true,
@@ -748,6 +839,27 @@
"path": "microsoft.entityframeworkcore.analyzers/7.0.12",
"hashPath": "microsoft.entityframeworkcore.analyzers.7.0.12.nupkg.sha512"
},
+ "Microsoft.EntityFrameworkCore.Design/7.0.12": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5UoOLj+qJGkEoL379wi1cSq1bBCCZQZRO5w/wE89ZakQT6qx8juAlJLg4fFwfrg0tYWP12iUAholwcuDM38s7g==",
+ "path": "microsoft.entityframeworkcore.design/7.0.12",
+ "hashPath": "microsoft.entityframeworkcore.design.7.0.12.nupkg.sha512"
+ },
+ "Microsoft.EntityFrameworkCore.Relational/7.0.12": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-apLzFyjM3s/voBiaMCJPwIOk5SxA1N6GmSbhqthfbUDn8mX+kxZl4RXNdaoBLzPKfUg4EoqCtt0YON/g9YXruQ==",
+ "path": "microsoft.entityframeworkcore.relational/7.0.12",
+ "hashPath": "microsoft.entityframeworkcore.relational.7.0.12.nupkg.sha512"
+ },
+ "Microsoft.EntityFrameworkCore.Tools/7.0.12": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4ZW43BJzV5aY8rkrSxhej1xiiDr1dLfFl/MitpHn4a5QJpQqctJ0kl/MF1U3CAIKnkeC4RaC9ZjJjODDbHtdeQ==",
+ "path": "microsoft.entityframeworkcore.tools/7.0.12",
+ "hashPath": "microsoft.entityframeworkcore.tools.7.0.12.nupkg.sha512"
+ },
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"type": "package",
"serviceable": true,
@@ -811,6 +923,13 @@
"path": "microsoft.extensions.dependencyinjection.abstractions/7.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg.sha512"
},
+ "Microsoft.Extensions.DependencyModel/7.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-oONNYd71J3LzkWc4fUHl3SvMfiQMYUCo/mDHDEu76hYYxdhdrPYv6fvGv9nnKVyhE9P0h20AU8RZB5OOWQcAXg==",
+ "path": "microsoft.extensions.dependencymodel/7.0.0",
+ "hashPath": "microsoft.extensions.dependencymodel.7.0.0.nupkg.sha512"
+ },
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
"type": "package",
"serviceable": true,
@@ -888,6 +1007,20 @@
"path": "microsoft.win32.systemevents/7.0.0",
"hashPath": "microsoft.win32.systemevents.7.0.0.nupkg.sha512"
},
+ "Mono.TextTemplating/2.2.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==",
+ "path": "mono.texttemplating/2.2.1",
+ "hashPath": "mono.texttemplating.2.2.1.nupkg.sha512"
+ },
+ "MySqlConnector/2.2.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6sinY78RvryhHwpup3awdjYO7d5hhWahb5p/1VDODJhSxJggV/sBbYuKK5IQF9TuzXABiddqUbmRfM884tqA3Q==",
+ "path": "mysqlconnector/2.2.5",
+ "hashPath": "mysqlconnector.2.2.5.nupkg.sha512"
+ },
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
@@ -895,6 +1028,13 @@
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
+ "Pomelo.EntityFrameworkCore.MySql/7.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Qk5WB/skSZet5Yrz6AN2ywjZaB1pxfAmvQ+5I4khTkLwwIamI4QJoH2NphCWLFQL+2ar8HvsNCTmwYk0qhqL0w==",
+ "path": "pomelo.entityframeworkcore.mysql/7.0.0",
+ "hashPath": "pomelo.entityframeworkcore.mysql.7.0.0.nupkg.sha512"
+ },
"SharpCompress/0.34.1": {
"type": "package",
"serviceable": true,
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.dll
index d10f69b..50fe81e 100644
Binary files a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.dll and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.pdb b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.pdb
index fc3f8ac..3ac5c11 100644
Binary files a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.pdb and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/PVDEMCS.pdb differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Pomelo.EntityFrameworkCore.MySql.dll b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Pomelo.EntityFrameworkCore.MySql.dll
new file mode 100644
index 0000000..94e8968
Binary files /dev/null and b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/Pomelo.EntityFrameworkCore.MySql.dll differ
diff --git a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/appsettings.json b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/appsettings.json
index 10f68b8..c6d8708 100644
--- a/PVDEMCS/PVDEMCS/bin/Debug/net6.0/appsettings.json
+++ b/PVDEMCS/PVDEMCS/bin/Debug/net6.0/appsettings.json
@@ -1,4 +1,7 @@
{
+ "ConnectionStrings": {
+ "MySqlConnection": "Server=127.0.0.1;Port=3306;Database=pvdemcs;Uid=root;Pwd=123456;"
+ },
"Logging": {
"LogLevel": {
"Default": "Information",
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.assets.cache b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.assets.cache
index cc5e322..f9e4337 100644
Binary files a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.assets.cache and b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.assets.cache differ
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.AssemblyReference.cache b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.AssemblyReference.cache
index 09850f3..18042b8 100644
Binary files a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.AssemblyReference.cache and b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.AssemblyReference.cache differ
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.CoreCompileInputs.cache b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.CoreCompileInputs.cache
index d7e01ed..607dac6 100644
--- a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.CoreCompileInputs.cache
+++ b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-807f65fd541e025686a40f2bc21bd39c18ac4ab5
+cac9563343eeada6c9db9ada7736b4da688f6f98
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.FileListAbsolute.txt b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.FileListAbsolute.txt
index 98b392d..2c80038 100644
--- a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.FileListAbsolute.txt
+++ b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.csproj.FileListAbsolute.txt
@@ -83,3 +83,10 @@ D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\runtimes\win\lib\net6.0\Syste
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\HslCommunication.dll
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\HslCommunication.xml
D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Autofac.Extensions.DependencyInjection.dll
+D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Humanizer.dll
+D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Design.dll
+D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Microsoft.EntityFrameworkCore.Relational.dll
+D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Microsoft.Extensions.DependencyModel.dll
+D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Mono.TextTemplating.dll
+D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\MySqlConnector.dll
+D:\Source\PVDEMCS\PVDEMCS\PVDEMCS\bin\Debug\net6.0\Pomelo.EntityFrameworkCore.MySql.dll
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.dll b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.dll
index d10f69b..50fe81e 100644
Binary files a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.dll and b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.dll differ
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.pdb b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.pdb
index fc3f8ac..3ac5c11 100644
Binary files a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.pdb and b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/PVDEMCS.pdb differ
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/ref/PVDEMCS.dll b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/ref/PVDEMCS.dll
index 5ed0cc8..552a9f1 100644
Binary files a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/ref/PVDEMCS.dll and b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/ref/PVDEMCS.dll differ
diff --git a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/refint/PVDEMCS.dll b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/refint/PVDEMCS.dll
index 5ed0cc8..552a9f1 100644
Binary files a/PVDEMCS/PVDEMCS/obj/Debug/net6.0/refint/PVDEMCS.dll and b/PVDEMCS/PVDEMCS/obj/Debug/net6.0/refint/PVDEMCS.dll differ
diff --git a/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.dgspec.json b/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.dgspec.json
index 413c0cc..ece1d9f 100644
--- a/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.dgspec.json
+++ b/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.dgspec.json
@@ -56,6 +56,16 @@
"target": "Package",
"version": "[7.0.12, )"
},
+ "Microsoft.EntityFrameworkCore.Tools": {
+ "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[7.0.12, )"
+ },
+ "Pomelo.EntityFrameworkCore.MySql": {
+ "target": "Package",
+ "version": "[7.0.0, )"
+ },
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[6.5.0, )"
@@ -80,7 +90,7 @@
"privateAssets": "all"
}
},
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.401\\RuntimeIdentifierGraph.json"
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.403\\RuntimeIdentifierGraph.json"
}
}
}
diff --git a/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.g.props b/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.g.props
index 769abd6..7577489 100644
--- a/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.g.props
+++ b/PVDEMCS/PVDEMCS/obj/PVDEMCS.csproj.nuget.g.props
@@ -16,8 +16,10 @@
+
C:\Users\xiaog\.nuget\packages\microsoft.extensions.apidescription.server\6.0.5
+ C:\Users\xiaog\.nuget\packages\microsoft.entityframeworkcore.tools\7.0.12
\ No newline at end of file
diff --git a/PVDEMCS/PVDEMCS/obj/project.assets.json b/PVDEMCS/PVDEMCS/obj/project.assets.json
index 10d02cc..617c903 100644
--- a/PVDEMCS/PVDEMCS/obj/project.assets.json
+++ b/PVDEMCS/PVDEMCS/obj/project.assets.json
@@ -118,6 +118,19 @@
}
}
},
+ "Humanizer.Core/2.14.1": {
+ "type": "package",
+ "compile": {
+ "lib/net6.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/Humanizer.dll": {
+ "related": ".xml"
+ }
+ }
+ },
"Masuit.Tools.Abstractions/2.6.7.3": {
"type": "package",
"dependencies": {
@@ -216,6 +229,57 @@
"lib/netstandard2.0/_._": {}
}
},
+ "Microsoft.EntityFrameworkCore.Design/7.0.12": {
+ "type": "package",
+ "dependencies": {
+ "Humanizer.Core": "2.14.1",
+ "Microsoft.EntityFrameworkCore.Relational": "7.0.12",
+ "Microsoft.Extensions.DependencyModel": "7.0.0",
+ "Mono.TextTemplating": "2.2.1"
+ },
+ "compile": {
+ "lib/net6.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Design.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "build/net6.0/Microsoft.EntityFrameworkCore.Design.props": {}
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Relational/7.0.12": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore": "7.0.12",
+ "Microsoft.Extensions.Configuration.Abstractions": "7.0.0"
+ },
+ "compile": {
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "Microsoft.EntityFrameworkCore.Tools/7.0.12": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Design": "7.0.12"
+ },
+ "compile": {
+ "lib/net6.0/_._": {}
+ },
+ "runtime": {
+ "lib/net6.0/_._": {}
+ }
+ },
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"type": "package",
"build": {
@@ -389,6 +453,26 @@
"buildTransitive/net6.0/_._": {}
}
},
+ "Microsoft.Extensions.DependencyModel/7.0.0": {
+ "type": "package",
+ "dependencies": {
+ "System.Text.Encodings.Web": "7.0.0",
+ "System.Text.Json": "7.0.0"
+ },
+ "compile": {
+ "lib/net6.0/_._": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/Microsoft.Extensions.DependencyModel.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net6.0/_._": {}
+ }
+ },
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
"type": "package",
"dependencies": {
@@ -589,6 +673,31 @@
}
}
},
+ "Mono.TextTemplating/2.2.1": {
+ "type": "package",
+ "dependencies": {
+ "System.CodeDom": "4.4.0"
+ },
+ "compile": {
+ "lib/netstandard2.0/_._": {}
+ },
+ "runtime": {
+ "lib/netstandard2.0/Mono.TextTemplating.dll": {}
+ }
+ },
+ "MySqlConnector/2.2.5": {
+ "type": "package",
+ "compile": {
+ "lib/net6.0/MySqlConnector.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/MySqlConnector.dll": {
+ "related": ".xml"
+ }
+ }
+ },
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
@@ -602,6 +711,23 @@
}
}
},
+ "Pomelo.EntityFrameworkCore.MySql/7.0.0": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.EntityFrameworkCore.Relational": "7.0.2",
+ "MySqlConnector": "2.2.5"
+ },
+ "compile": {
+ "lib/net6.0/Pomelo.EntityFrameworkCore.MySql.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/Pomelo.EntityFrameworkCore.MySql.dll": {
+ "related": ".xml"
+ }
+ }
+ },
"SharpCompress/0.34.1": {
"type": "package",
"dependencies": {
@@ -1266,6 +1392,24 @@
"lib/netstandard2.0/HtmlSanitizer.xml"
]
},
+ "Humanizer.Core/2.14.1": {
+ "sha512": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==",
+ "type": "package",
+ "path": "humanizer.core/2.14.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "humanizer.core.2.14.1.nupkg.sha512",
+ "humanizer.core.nuspec",
+ "lib/net6.0/Humanizer.dll",
+ "lib/net6.0/Humanizer.xml",
+ "lib/netstandard1.0/Humanizer.dll",
+ "lib/netstandard1.0/Humanizer.xml",
+ "lib/netstandard2.0/Humanizer.dll",
+ "lib/netstandard2.0/Humanizer.xml",
+ "logo.png"
+ ]
+ },
"Masuit.Tools.Abstractions/2.6.7.3": {
"sha512": "XySzP6Nbl4tkbOAoR/KC9tKCnOYsrsgWQcHw5avlOKWrKrz7uk4n1VFZ7OkU/N57GDGE19jXR6cG1WaKlo5aHw==",
"type": "package",
@@ -1424,6 +1568,60 @@
"microsoft.entityframeworkcore.analyzers.nuspec"
]
},
+ "Microsoft.EntityFrameworkCore.Design/7.0.12": {
+ "sha512": "5UoOLj+qJGkEoL379wi1cSq1bBCCZQZRO5w/wE89ZakQT6qx8juAlJLg4fFwfrg0tYWP12iUAholwcuDM38s7g==",
+ "type": "package",
+ "path": "microsoft.entityframeworkcore.design/7.0.12",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "build/net6.0/Microsoft.EntityFrameworkCore.Design.props",
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Design.dll",
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Design.xml",
+ "microsoft.entityframeworkcore.design.7.0.12.nupkg.sha512",
+ "microsoft.entityframeworkcore.design.nuspec"
+ ]
+ },
+ "Microsoft.EntityFrameworkCore.Relational/7.0.12": {
+ "sha512": "apLzFyjM3s/voBiaMCJPwIOk5SxA1N6GmSbhqthfbUDn8mX+kxZl4RXNdaoBLzPKfUg4EoqCtt0YON/g9YXruQ==",
+ "type": "package",
+ "path": "microsoft.entityframeworkcore.relational/7.0.12",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll",
+ "lib/net6.0/Microsoft.EntityFrameworkCore.Relational.xml",
+ "microsoft.entityframeworkcore.relational.7.0.12.nupkg.sha512",
+ "microsoft.entityframeworkcore.relational.nuspec"
+ ]
+ },
+ "Microsoft.EntityFrameworkCore.Tools/7.0.12": {
+ "sha512": "4ZW43BJzV5aY8rkrSxhej1xiiDr1dLfFl/MitpHn4a5QJpQqctJ0kl/MF1U3CAIKnkeC4RaC9ZjJjODDbHtdeQ==",
+ "type": "package",
+ "path": "microsoft.entityframeworkcore.tools/7.0.12",
+ "hasTools": true,
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "lib/net6.0/_._",
+ "microsoft.entityframeworkcore.tools.7.0.12.nupkg.sha512",
+ "microsoft.entityframeworkcore.tools.nuspec",
+ "tools/EntityFrameworkCore.PS2.psd1",
+ "tools/EntityFrameworkCore.PS2.psm1",
+ "tools/EntityFrameworkCore.psd1",
+ "tools/EntityFrameworkCore.psm1",
+ "tools/about_EntityFrameworkCore.help.txt",
+ "tools/init.ps1",
+ "tools/net461/any/ef.exe",
+ "tools/net461/win-arm64/ef.exe",
+ "tools/net461/win-x86/ef.exe",
+ "tools/netcoreapp2.0/any/ef.dll",
+ "tools/netcoreapp2.0/any/ef.runtimeconfig.json"
+ ]
+ },
"Microsoft.Extensions.ApiDescription.Server/6.0.5": {
"sha512": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw==",
"type": "package",
@@ -1877,6 +2075,34 @@
"useSharedDesignerContext.txt"
]
},
+ "Microsoft.Extensions.DependencyModel/7.0.0": {
+ "sha512": "oONNYd71J3LzkWc4fUHl3SvMfiQMYUCo/mDHDEu76hYYxdhdrPYv6fvGv9nnKVyhE9P0h20AU8RZB5OOWQcAXg==",
+ "type": "package",
+ "path": "microsoft.extensions.dependencymodel/7.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "LICENSE.TXT",
+ "README.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/Microsoft.Extensions.DependencyModel.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net6.0/_._",
+ "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyModel.targets",
+ "lib/net462/Microsoft.Extensions.DependencyModel.dll",
+ "lib/net462/Microsoft.Extensions.DependencyModel.xml",
+ "lib/net6.0/Microsoft.Extensions.DependencyModel.dll",
+ "lib/net6.0/Microsoft.Extensions.DependencyModel.xml",
+ "lib/net7.0/Microsoft.Extensions.DependencyModel.dll",
+ "lib/net7.0/Microsoft.Extensions.DependencyModel.xml",
+ "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.dll",
+ "lib/netstandard2.0/Microsoft.Extensions.DependencyModel.xml",
+ "microsoft.extensions.dependencymodel.7.0.0.nupkg.sha512",
+ "microsoft.extensions.dependencymodel.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
"Microsoft.Extensions.FileProviders.Abstractions/7.0.0": {
"sha512": "NyawiW9ZT/liQb34k9YqBSNPLuuPkrjMgQZ24Y/xXX1RoiBkLUdPMaQTmxhZ5TYu8ZKZ9qayzil75JX95vGQUg==",
"type": "package",
@@ -2223,6 +2449,46 @@
"useSharedDesignerContext.txt"
]
},
+ "Mono.TextTemplating/2.2.1": {
+ "sha512": "KZYeKBET/2Z0gY1WlTAK7+RHTl7GSbtvTLDXEZZojUdAPqpQNDL6tHv7VUpqfX5VEOh+uRGKaZXkuD253nEOBQ==",
+ "type": "package",
+ "path": "mono.texttemplating/2.2.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "lib/net472/Mono.TextTemplating.dll",
+ "lib/netstandard2.0/Mono.TextTemplating.dll",
+ "mono.texttemplating.2.2.1.nupkg.sha512",
+ "mono.texttemplating.nuspec"
+ ]
+ },
+ "MySqlConnector/2.2.5": {
+ "sha512": "6sinY78RvryhHwpup3awdjYO7d5hhWahb5p/1VDODJhSxJggV/sBbYuKK5IQF9TuzXABiddqUbmRfM884tqA3Q==",
+ "type": "package",
+ "path": "mysqlconnector/2.2.5",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "lib/net461/MySqlConnector.dll",
+ "lib/net461/MySqlConnector.xml",
+ "lib/net471/MySqlConnector.dll",
+ "lib/net471/MySqlConnector.xml",
+ "lib/net6.0/MySqlConnector.dll",
+ "lib/net6.0/MySqlConnector.xml",
+ "lib/net7.0/MySqlConnector.dll",
+ "lib/net7.0/MySqlConnector.xml",
+ "lib/netcoreapp3.1/MySqlConnector.dll",
+ "lib/netcoreapp3.1/MySqlConnector.xml",
+ "lib/netstandard2.0/MySqlConnector.dll",
+ "lib/netstandard2.0/MySqlConnector.xml",
+ "lib/netstandard2.1/MySqlConnector.dll",
+ "lib/netstandard2.1/MySqlConnector.xml",
+ "logo.png",
+ "mysqlconnector.2.2.5.nupkg.sha512",
+ "mysqlconnector.nuspec"
+ ]
+ },
"Newtonsoft.Json/13.0.3": {
"sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"type": "package",
@@ -2253,6 +2519,23 @@
"packageIcon.png"
]
},
+ "Pomelo.EntityFrameworkCore.MySql/7.0.0": {
+ "sha512": "Qk5WB/skSZet5Yrz6AN2ywjZaB1pxfAmvQ+5I4khTkLwwIamI4QJoH2NphCWLFQL+2ar8HvsNCTmwYk0qhqL0w==",
+ "type": "package",
+ "path": "pomelo.entityframeworkcore.mysql/7.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "README.md",
+ "icon.png",
+ "lib/net6.0/Pomelo.EntityFrameworkCore.MySql.dll",
+ "lib/net6.0/Pomelo.EntityFrameworkCore.MySql.xml",
+ "lib/net7.0/Pomelo.EntityFrameworkCore.MySql.dll",
+ "lib/net7.0/Pomelo.EntityFrameworkCore.MySql.xml",
+ "pomelo.entityframeworkcore.mysql.7.0.0.nupkg.sha512",
+ "pomelo.entityframeworkcore.mysql.nuspec"
+ ]
+ },
"SharpCompress/0.34.1": {
"sha512": "WttRM/J/ktUwM3hRPxRYux1AOT+TGLqab34ZNBGTZRChHtpkJXFGHJ/cZCyNOH0OqpCNDdOsHhzxOVYkx4WoGw==",
"type": "package",
@@ -3109,6 +3392,8 @@
"Autofac.Extensions.DependencyInjection >= 8.0.0",
"Masuit.Tools.Core >= 2.6.7.3",
"Microsoft.EntityFrameworkCore >= 7.0.12",
+ "Microsoft.EntityFrameworkCore.Tools >= 7.0.12",
+ "Pomelo.EntityFrameworkCore.MySql >= 7.0.0",
"Swashbuckle.AspNetCore >= 6.5.0"
]
},
@@ -3167,6 +3452,16 @@
"target": "Package",
"version": "[7.0.12, )"
},
+ "Microsoft.EntityFrameworkCore.Tools": {
+ "include": "Runtime, Build, Native, ContentFiles, Analyzers, BuildTransitive",
+ "suppressParent": "All",
+ "target": "Package",
+ "version": "[7.0.12, )"
+ },
+ "Pomelo.EntityFrameworkCore.MySql": {
+ "target": "Package",
+ "version": "[7.0.0, )"
+ },
"Swashbuckle.AspNetCore": {
"target": "Package",
"version": "[6.5.0, )"
@@ -3191,7 +3486,7 @@
"privateAssets": "all"
}
},
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.401\\RuntimeIdentifierGraph.json"
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.403\\RuntimeIdentifierGraph.json"
}
}
},
diff --git a/PVDEMCS/PVDEMCS/obj/project.nuget.cache b/PVDEMCS/PVDEMCS/obj/project.nuget.cache
index e2f89e0..94f5743 100644
--- a/PVDEMCS/PVDEMCS/obj/project.nuget.cache
+++ b/PVDEMCS/PVDEMCS/obj/project.nuget.cache
@@ -1,6 +1,6 @@
{
"version": 2,
- "dgSpecHash": "isYhD8nl1VKUhgS8TXHkuMb6+6nbA90q4QUNutzPkN4OpLMFKVjNoJu9yBOn5Q7VKuQuDH1Yu9aQqFI0fLPRTA==",
+ "dgSpecHash": "u+XZFKvOa5x5287c3setKwoFNwezabW5RpGt2lKpnZCgwlaBKZ6hVHjG9OxTgCm30QK8wC6uwBi3u1WQ2kYzTQ==",
"success": true,
"projectFilePath": "D:\\Source\\PVDEMCS\\PVDEMCS\\PVDEMCS\\PVDEMCS.csproj",
"expectedPackageFiles": [
@@ -11,12 +11,16 @@
"C:\\Users\\xiaog\\.nuget\\packages\\castle.core\\5.1.1\\castle.core.5.1.1.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\dnsclient\\1.7.0\\dnsclient.1.7.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\htmlsanitizer\\8.0.723\\htmlsanitizer.8.0.723.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\masuit.tools.abstractions\\2.6.7.3\\masuit.tools.abstractions.2.6.7.3.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\masuit.tools.core\\2.6.7.3\\masuit.tools.core.2.6.7.3.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.entityframeworkcore\\7.0.12\\microsoft.entityframeworkcore.7.0.12.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\7.0.12\\microsoft.entityframeworkcore.abstractions.7.0.12.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\7.0.12\\microsoft.entityframeworkcore.analyzers.7.0.12.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\microsoft.entityframeworkcore.design\\7.0.12\\microsoft.entityframeworkcore.design.7.0.12.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\microsoft.entityframeworkcore.relational\\7.0.12\\microsoft.entityframeworkcore.relational.7.0.12.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\microsoft.entityframeworkcore.tools\\7.0.12\\microsoft.entityframeworkcore.tools.7.0.12.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.apidescription.server\\6.0.5\\microsoft.extensions.apidescription.server.6.0.5.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\7.0.0\\microsoft.extensions.caching.abstractions.7.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.caching.memory\\7.0.0\\microsoft.extensions.caching.memory.7.0.0.nupkg.sha512",
@@ -26,6 +30,7 @@
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.configuration.json\\7.0.0\\microsoft.extensions.configuration.json.7.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\7.0.0\\microsoft.extensions.dependencyinjection.7.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\7.0.0\\microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.dependencymodel\\7.0.0\\microsoft.extensions.dependencymodel.7.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\7.0.0\\microsoft.extensions.fileproviders.abstractions.7.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\7.0.0\\microsoft.extensions.fileproviders.physical.7.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\7.0.0\\microsoft.extensions.filesystemglobbing.7.0.0.nupkg.sha512",
@@ -37,7 +42,10 @@
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.openapi\\1.2.3\\microsoft.openapi.1.2.3.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.win32.registry\\5.0.0\\microsoft.win32.registry.5.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\microsoft.win32.systemevents\\7.0.0\\microsoft.win32.systemevents.7.0.0.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\mono.texttemplating\\2.2.1\\mono.texttemplating.2.2.1.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\mysqlconnector\\2.2.5\\mysqlconnector.2.2.5.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
+ "C:\\Users\\xiaog\\.nuget\\packages\\pomelo.entityframeworkcore.mysql\\7.0.0\\pomelo.entityframeworkcore.mysql.7.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\sharpcompress\\0.34.1\\sharpcompress.0.34.1.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\sixlabors.fonts\\2.0.0\\sixlabors.fonts.2.0.0.nupkg.sha512",
"C:\\Users\\xiaog\\.nuget\\packages\\sixlabors.imagesharp\\3.0.2\\sixlabors.imagesharp.3.0.2.nupkg.sha512",