Compare commits

..

No commits in common. "a4d411bcb7b14d3655a5fcdd870101e83ef4449b" and "e820a3af53685bdc821b43ded8d54ff358de5c30" have entirely different histories.

55 changed files with 140 additions and 6387 deletions

2
.gitignore vendored
View File

@ -1,7 +1,5 @@
.idea/ .idea/
**/bin/ **/bin/
**/obj/ **/obj/
/bin/
/obj/
global.json global.json

View File

@ -7,13 +7,16 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="BouncyCastle.NetCore" Version="2.2.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3"/> <PackageReference Include="Newtonsoft.Json" Version="13.0.3"/>
<PackageReference Include="System.Management" Version="8.0.0"/> <PackageReference Include="System.Management" Version="8.0.0"/>
<PackageReference Include="Serilog" Version="4.0.0"/> <PackageReference Include="Serilog" Version="4.0.0"/>
<PackageReference Include="Serilog.Sinks.File" Version="5.0.1-dev-00972"/> <PackageReference Include="Serilog.Sinks.File" Version="5.0.1-dev-00972"/>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Model\" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="bin\Debug\net7.0\MasstransferCommon.deps.json" /> <Content Include="bin\Debug\net7.0\MasstransferCommon.deps.json" />
<Content Include="bin\Debug\net7.0\MasstransferCommon.dll" /> <Content Include="bin\Debug\net7.0\MasstransferCommon.dll" />
@ -22,18 +25,14 @@
<ItemGroup> <ItemGroup>
<Compile Remove="bin\**" /> <Compile Remove="bin\**" />
<Compile Remove="obj\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Remove="bin\**" /> <EmbeddedResource Remove="bin\**" />
<EmbeddedResource Remove="obj\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Remove="bin\**" /> <None Remove="bin\**" />
<None Remove="obj\**" />
<None Remove=".gitignore" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,14 +0,0 @@
namespace MasstransferCommon.Model.Constant;
public class ProcessTopics
{
/// <summary>
/// 证书更新事件
/// </summary>
public const string LicenseUpdateEvent = "LicenseUpdateEvent";
/// <summary>
/// 证书更新事件反馈
/// </summary>
public const string LicenseUpdateEventFeedback = "LicenseUpdateEventFeedback";
}

View File

@ -1,17 +0,0 @@
namespace MasstransferCommon.Model.Constant;
/// <summary>
/// 这里保存所有的 Mqtt Topic
/// </summary>
public class Topics
{
/// <summary>
/// 更新证书事件
/// </summary>
public const string UpdateLicenseEvent = "UpdateLicenseEvent";
/// <summary>
/// 更新证书事件反馈
/// </summary>
public const string UpdateLicenseEventFeedback = "UpdateLicenseEventFeedback";
}

View File

@ -1,29 +0,0 @@
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
namespace MasstransferCommon.Utils;
public class CertUtil
{
public static void ConvertCertToPfx(string certPath, string keyPath, string pfxPath, string password)
{
// 加载证书文件(.cer 或 .crt
var cert = new X509Certificate2(certPath);
// 加载私钥文件(.key
var keyContent = File.ReadAllText(keyPath);
// 从PEM格式的私钥中提取RSA密钥
var privateKey = RSA.Create();
privateKey.ImportFromPem(keyContent.ToCharArray());
// 创建带有私钥的X509Certificate2对象
var certWithPrivateKey = cert.CopyWithPrivateKey(privateKey);
// 导出为PFX格式
var pfxData = certWithPrivateKey.Export(X509ContentType.Pfx, password);
// 保存PFX文件
File.WriteAllBytes(pfxPath, pfxData);
}
}

View File

@ -40,18 +40,6 @@ public class JsonUtil
} }
} }
public static object? FromJson(Type type, string json)
{
try
{
return JsonConvert.DeserializeObject(json, type);
}
catch (Exception e)
{
throw new ArgumentException($" 无效的json 字符串 {json} ");
}
}
public static T FromJsonOrDefault<T>(string json) public static T FromJsonOrDefault<T>(string json)
{ {
try try

View File

@ -42,14 +42,6 @@
"target": "Package", "target": "Package",
"version": "[13.0.3, )" "version": "[13.0.3, )"
}, },
"Serilog": {
"target": "Package",
"version": "[4.0.0, )"
},
"Serilog.Sinks.File": {
"target": "Package",
"version": "[5.0.1-dev-00972, )"
},
"System.Management": { "System.Management": {
"target": "Package", "target": "Package",
"version": "[8.0.0, )" "version": "[8.0.0, )"

View File

@ -15,35 +15,6 @@
} }
} }
}, },
"Serilog/4.0.0": {
"type": "package",
"compile": {
"lib/net6.0/Serilog.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/Serilog.dll": {
"related": ".xml"
}
}
},
"Serilog.Sinks.File/5.0.1-dev-00972": {
"type": "package",
"dependencies": {
"Serilog": "2.10.0"
},
"compile": {
"lib/net6.0/Serilog.Sinks.File.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net6.0/Serilog.Sinks.File.dll": {
"related": ".pdb;.xml"
}
}
},
"System.CodeDom/8.0.0": { "System.CodeDom/8.0.0": {
"type": "package", "type": "package",
"compile": { "compile": {
@ -118,59 +89,6 @@
"packageIcon.png" "packageIcon.png"
] ]
}, },
"Serilog/4.0.0": {
"sha512": "2jDkUrSh5EofOp7Lx5Zgy0EB+7hXjjxE2ktTb1WVQmU00lDACR2TdROGKU0K1pDTBSJBN1PqgYpgOZF8mL7NJw==",
"type": "package",
"path": "serilog/4.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"icon.png",
"lib/net462/Serilog.dll",
"lib/net462/Serilog.xml",
"lib/net471/Serilog.dll",
"lib/net471/Serilog.xml",
"lib/net6.0/Serilog.dll",
"lib/net6.0/Serilog.xml",
"lib/net8.0/Serilog.dll",
"lib/net8.0/Serilog.xml",
"lib/netstandard2.0/Serilog.dll",
"lib/netstandard2.0/Serilog.xml",
"serilog.4.0.0.nupkg.sha512",
"serilog.nuspec"
]
},
"Serilog.Sinks.File/5.0.1-dev-00972": {
"sha512": "fIK2UIewc1meCDpL8pOJLy0QRe1IzqJ3cnSXjz7GpPVVCr715nFloa49QKeK4dFPDgQk9xU3zi3ioIVefSi0+Q==",
"type": "package",
"path": "serilog.sinks.file/5.0.1-dev-00972",
"files": [
".nupkg.metadata",
".signature.p7s",
"images/icon.png",
"lib/net45/Serilog.Sinks.File.dll",
"lib/net45/Serilog.Sinks.File.pdb",
"lib/net45/Serilog.Sinks.File.xml",
"lib/net5.0/Serilog.Sinks.File.dll",
"lib/net5.0/Serilog.Sinks.File.pdb",
"lib/net5.0/Serilog.Sinks.File.xml",
"lib/net6.0/Serilog.Sinks.File.dll",
"lib/net6.0/Serilog.Sinks.File.pdb",
"lib/net6.0/Serilog.Sinks.File.xml",
"lib/netstandard1.3/Serilog.Sinks.File.dll",
"lib/netstandard1.3/Serilog.Sinks.File.pdb",
"lib/netstandard1.3/Serilog.Sinks.File.xml",
"lib/netstandard2.0/Serilog.Sinks.File.dll",
"lib/netstandard2.0/Serilog.Sinks.File.pdb",
"lib/netstandard2.0/Serilog.Sinks.File.xml",
"lib/netstandard2.1/Serilog.Sinks.File.dll",
"lib/netstandard2.1/Serilog.Sinks.File.pdb",
"lib/netstandard2.1/Serilog.Sinks.File.xml",
"serilog.sinks.file.5.0.1-dev-00972.nupkg.sha512",
"serilog.sinks.file.nuspec"
]
},
"System.CodeDom/8.0.0": { "System.CodeDom/8.0.0": {
"sha512": "WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==", "sha512": "WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==",
"type": "package", "type": "package",
@ -237,8 +155,6 @@
"projectFileDependencyGroups": { "projectFileDependencyGroups": {
"net7.0": [ "net7.0": [
"Newtonsoft.Json >= 13.0.3", "Newtonsoft.Json >= 13.0.3",
"Serilog >= 4.0.0",
"Serilog.Sinks.File >= 5.0.1-dev-00972",
"System.Management >= 8.0.0" "System.Management >= 8.0.0"
] ]
}, },
@ -283,14 +199,6 @@
"target": "Package", "target": "Package",
"version": "[13.0.3, )" "version": "[13.0.3, )"
}, },
"Serilog": {
"target": "Package",
"version": "[4.0.0, )"
},
"Serilog.Sinks.File": {
"target": "Package",
"version": "[5.0.1-dev-00972, )"
},
"System.Management": { "System.Management": {
"target": "Package", "target": "Package",
"version": "[8.0.0, )" "version": "[8.0.0, )"

View File

@ -1,12 +1,10 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "G7BHmT4HD4EhvdtwN5WLC+yFWrgNE7L93eN14kEaAdsPlQnFPr/MP4gc5x29sduC6A/XHEEuEtZunQUaIsn1Dw==", "dgSpecHash": "ddfrsTX7KLhu5ZmICCDs8Mipbnrk5Hh+8evf7znqlXsdxc4qMFY9k3ScATZwRP6Xqz0Wz52bncjXjvzLZAcd4g==",
"success": true, "success": true,
"projectFilePath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj", "projectFilePath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"C:\\Users\\huangxianguo\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512", "C:\\Users\\huangxianguo\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\serilog\\4.0.0\\serilog.4.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\serilog.sinks.file\\5.0.1-dev-00972\\serilog.sinks.file.5.0.1-dev-00972.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.codedom\\8.0.0\\system.codedom.8.0.0.nupkg.sha512", "C:\\Users\\huangxianguo\\.nuget\\packages\\system.codedom\\8.0.0\\system.codedom.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.management\\8.0.0\\system.management.8.0.0.nupkg.sha512" "C:\\Users\\huangxianguo\\.nuget\\packages\\system.management\\8.0.0\\system.management.8.0.0.nupkg.sha512"
], ],

View File

@ -1 +1 @@
"restore":{"projectUniqueName":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj","projectName":"MasstransferCommon","projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj","outputPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net7.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net7.0":{"targetAlias":"net7.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net7.0":{"targetAlias":"net7.0","dependencies":{"Newtonsoft.Json":{"target":"Package","version":"[13.0.3, )"},"Serilog":{"target":"Package","version":"[4.0.0, )"},"Serilog.Sinks.File":{"target":"Package","version":"[5.0.1-dev-00972, )"},"System.Management":{"target":"Package","version":"[8.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\7.0.407\\RuntimeIdentifierGraph.json"}} "restore":{"projectUniqueName":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj","projectName":"MasstransferCommon","projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj","outputPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net7.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net7.0":{"targetAlias":"net7.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net7.0":{"targetAlias":"net7.0","dependencies":{"Newtonsoft.Json":{"target":"Package","version":"[13.0.3, )"},"System.Management":{"target":"Package","version":"[8.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\7.0.407\\RuntimeIdentifierGraph.json"}}

View File

@ -1 +1 @@
17187849294453387 17173822294577400

View File

@ -0,0 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
<Folder Include="Mqtt\Service\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="MQTTnet" Version="4.3.6.1152" />
<PackageReference Include="Serilog" Version="4.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MasstransferCommon\MasstransferCommon.csproj" />
</ItemGroup>
</Project>

View File

@ -1,5 +1,4 @@
using System.Reflection; using MasstransferCommon.Utils;
using MasstransferCommon.Utils;
using MasstransferInfrastructure.Mqtt.Model; using MasstransferInfrastructure.Mqtt.Model;
using MQTTnet; using MQTTnet;
using MQTTnet.Client; using MQTTnet.Client;
@ -8,10 +7,11 @@ using Serilog;
namespace MasstransferInfrastructure.Mqtt.Client; namespace MasstransferInfrastructure.Mqtt.Client;
public class MessageQueueHelper public class MessageQueueHelper<T>
{ {
private static readonly Dictionary<string, List<Delegate>> Subscribers = new(); private static readonly Dictionary<string, List<Action<string, T>>> Subscribers = new();
// ReSharper disable once StaticMemberInGenericType
private static readonly MqttClient Client = new(); private static readonly MqttClient Client = new();
@ -41,7 +41,7 @@ public class MessageQueueHelper
/// <param name="topic"></param> /// <param name="topic"></param>
/// <param name="delegate"></param> /// <param name="delegate"></param>
/// <param name="qos"></param> /// <param name="qos"></param>
public static async Task<bool> Subscribe(string topic, Delegate @delegate, public static async Task<bool> Subscribe(string topic, Action<string, T> @delegate,
MqttQualityOfServiceLevel qos = MqttQualityOfServiceLevel.AtMostOnce) MqttQualityOfServiceLevel qos = MqttQualityOfServiceLevel.AtMostOnce)
{ {
if (!Subscribers.ContainsKey(topic)) if (!Subscribers.ContainsKey(topic))
@ -84,12 +84,8 @@ public class MessageQueueHelper
{ {
try try
{ {
var methodInfo = subscriber.Method;
var parameters = methodInfo.GetParameters();
if (parameters.Length != 2) continue;
var type = parameters[1].ParameterType;
// 通知订阅者 // 通知订阅者
subscriber.DynamicInvoke(topic, JsonUtil.FromJson(type, message)); subscriber(topic, JsonUtil.FromJson<T>(message));
} }
catch (Exception exception) catch (Exception exception)
{ {

View File

@ -10,16 +10,16 @@ namespace MasstransferCommunicate.Process.Service;
/// </summary> /// </summary>
public class ProcessCommunicator public class ProcessCommunicator
{ {
private static readonly Dictionary<string, List<Delegate>> Subscribers = new(); private static readonly Dictionary<string, List<Action<string>>> Subscribers = new();
private static ProcessHelper? _helper; private static ProcessHelper? _helper;
/// <summary> /// <summary>
/// 启动连接 /// 连接到服务端
/// </summary> /// </summary>
public static async Task Connect() public static async Task Connect()
{ {
_helper = await ProcessHelper.CreateServer("Masstransfer"); _helper = await ProcessHelper.CreateClient("Masstransfer");
_helper.MessageReceived += HandleMessageReceived; _helper.MessageReceived += HandleMessageReceived;
} }
@ -29,7 +29,7 @@ public class ProcessCommunicator
/// </summary> /// </summary>
/// <param name="topic"></param> /// <param name="topic"></param>
/// <param name="delegate"></param> /// <param name="delegate"></param>
public static void Subscribe(string topic, Delegate @delegate) public static Task<bool> Subscribe<T>(string topic, Action<string> @delegate)
{ {
if (!Subscribers.ContainsKey(topic)) if (!Subscribers.ContainsKey(topic))
{ {
@ -37,6 +37,7 @@ public class ProcessCommunicator
} }
Subscribers[topic].Add(@delegate); Subscribers[topic].Add(@delegate);
return Task.FromResult(true);
} }
/// <summary> /// <summary>
@ -58,24 +59,23 @@ public class ProcessCommunicator
{ {
if (message == null) return; if (message == null) return;
Console.WriteLine($"收到来自服务端的消息: {message}");
var dictionary = JsonUtil.ToDictionary(message); var dictionary = JsonUtil.ToDictionary(message);
if (dictionary == null) return; if (dictionary == null) return;
var topic = dictionary["Topic"] as string; var topic = dictionary["Topic"] as string;
var data = dictionary["Data"]; var data = dictionary["Data"];
if (!Subscribers.TryGetValue(topic, out var subscribers)) return; if (!Subscribers.TryGetValue(topic, out var subscribers)) return;
foreach (var subscriber in subscribers) foreach (var subscriber in subscribers)
{ {
try try
{ {
var methodInfo = subscriber.Method;
var parameters = methodInfo.GetParameters();
if (parameters.Length != 2) continue;
var type = parameters[1].ParameterType;
// 通知订阅者 // 通知订阅者
subscriber.DynamicInvoke(topic, JsonUtil.FromJson(type, message)); subscriber(JsonUtil.ToJson(data));
} }
catch (Exception exception) catch (Exception exception)
{ {

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v7.0", FrameworkDisplayName = ".NET 7.0")]

View File

@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("MasstransferCommunicate")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("MasstransferCommunicate")]
[assembly: System.Reflection.AssemblyTitleAttribute("MasstransferCommunicate")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@ -0,0 +1 @@
c621dbd9f14cea322f52ce3b44077fee0bdfab83

View File

@ -0,0 +1,11 @@
is_global = true
build_property.TargetFramework = net7.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = MasstransferCommunicate
build_property.ProjectDir = C:\workspace\code_repos\haiju\MasstransferExporter\MasstransferCommunicate\

View File

@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\huangxianguo\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.9.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\huangxianguo\.nuget\packages\" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@ -0,0 +1 @@
"restore":{"projectUniqueName":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommunicate\\MasstransferCommunicate.csproj","projectName":"MasstransferCommunicate","projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommunicate\\MasstransferCommunicate.csproj","outputPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommunicate\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net7.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net7.0":{"targetAlias":"net7.0","projectReferences":{"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj":{"projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj"}}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net7.0":{"targetAlias":"net7.0","dependencies":{"MQTTnet":{"target":"Package","version":"[4.3.6.1152, )"},"Serilog":{"target":"Package","version":"[4.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\7.0.407\\RuntimeIdentifierGraph.json"}}

View File

@ -2,7 +2,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferExporter", "MasstransferExporter\MasstransferExporter.csproj", "{4675176C-487E-4D48-B904-C854D8501954}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferExporter", "MasstransferExporter\MasstransferExporter.csproj", "{4675176C-487E-4D48-B904-C854D8501954}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferInfrastructure", "MasstransferInfrastructure\MasstransferInfrastructure.csproj", "{D790D484-1314-4476-93EC-4151F9A6E762}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferCommunicate", "MasstransferCommunicate\MasstransferCommunicate.csproj", "{D790D484-1314-4476-93EC-4151F9A6E762}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferCommon", "MasstransferCommon\MasstransferCommon.csproj", "{66C6D73C-BADB-4E28-9C83-E701B019626D}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MasstransferCommon", "MasstransferCommon\MasstransferCommon.csproj", "{66C6D73C-BADB-4E28-9C83-E701B019626D}"
EndProject EndProject

View File

@ -1,40 +0,0 @@
using MasstransferCommon.Model.Constant;
using MasstransferCommunicate.Process.Service;
using MasstransferInfrastructure.Mqtt.Client;
namespace MasstransferExporter.License;
/// <summary>
/// 证书业务
/// </summary>
public class LicenseService
{
/// <summary>
/// 启动监听证书更新事件
/// </summary>
public static async Task ListenLicenseUpdateEvent()
{
await MessageQueueHelper.Subscribe(Topics.UpdateLicenseEvent, HandleUpdateLicenseEvent);
}
/// <summary>
/// 处理接收到的证书更新事件
/// </summary>
private static async Task HandleUpdateLicenseEvent(string topic, string license)
{
ProcessCommunicator.Subscribe(ProcessTopics.LicenseUpdateEventFeedback, HandleUpdateLicenseEventFeedback);
await ProcessCommunicator.Send(ProcessTopics.LicenseUpdateEvent, license);
}
/// <summary>
/// 处理证书更新反馈
/// </summary>
/// <param name="topic"></param>
/// <param name="result"></param>
private static async Task HandleUpdateLicenseEventFeedback(string topic, string result)
{
await MessageQueueHelper.Publish(Topics.UpdateLicenseEventFeedback, result);
}
}

View File

@ -8,9 +8,6 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="BouncyCastle.NetCore" Version="2.2.1" />
<PackageReference Include="M2Mqtt" Version="4.3.0" />
<PackageReference Include="MQTTnet.Extensions.ManagedClient" Version="4.3.6.1152" />
<PackageReference Include="Serilog" Version="4.0.0" /> <PackageReference Include="Serilog" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageReference Include="System.Diagnostics.Process" Version="4.3.0" /> <PackageReference Include="System.Diagnostics.Process" Version="4.3.0" />
@ -19,19 +16,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\MasstransferCommon\MasstransferCommon.csproj" /> <ProjectReference Include="..\MasstransferCommon\MasstransferCommon.csproj" />
<ProjectReference Include="..\MasstransferInfrastructure\MasstransferInfrastructure.csproj" /> <ProjectReference Include="..\MasstransferCommunicate\MasstransferCommunicate.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Remove="obj\**" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="obj\**" />
</ItemGroup>
<ItemGroup>
<None Remove="obj\**" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,8 +1,19 @@
class Program using MasstransferCommunicate.Process.Client;
using MasstransferCommunicate.Process.Service;
class Program
{ {
static void Main() static async Task Main()
{ {
Console.WriteLine("按任意键退出"); await ProcessCommunicator.Connect();
Console.ReadKey();
Console.WriteLine("输入要发送的消息 (输入 'exit' 退出):");
while (true)
{
string messageToSend = Console.ReadLine();
if (messageToSend == "exit") break;
await ProcessCommunicator.Send("ClientMessage", messageToSend);
}
} }
} }

View File

@ -1,22 +0,0 @@
using MasstransferCommon.Scheduler;
namespace MasstransferExporter.Stat;
/// <summary>
/// 心跳
/// </summary>
public class HeartbeatExporter
{
/// <summary>
/// 启动心跳线程
/// </summary>
public static void StartHeartBeat()
{
JobScheduler.AddTask("HeartbeatExporter#StartHeartBeat", HeartBeat, 10000);
}
private static void HeartBeat()
{
}
}

View File

@ -4,14 +4,14 @@
"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj": {} "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj": {}
}, },
"projects": { "projects": {
"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj": { "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj", "projectUniqueName": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj",
"projectName": "MasstransferCommon", "projectName": "MasstransferExporter",
"projectPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj", "projectPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj",
"packagesPath": "C:\\Users\\huangxianguo\\.nuget\\packages\\", "packagesPath": "C:\\Users\\huangxianguo\\.nuget\\packages\\",
"outputPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\obj\\", "outputPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\huangxianguo\\AppData\\Roaming\\NuGet\\NuGet.Config" "C:\\Users\\huangxianguo\\AppData\\Roaming\\NuGet\\NuGet.Config"
@ -37,193 +37,6 @@
"frameworks": { "frameworks": {
"net7.0": { "net7.0": {
"targetAlias": "net7.0", "targetAlias": "net7.0",
"dependencies": {
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
},
"Serilog": {
"target": "Package",
"version": "[4.0.0, )"
},
"Serilog.Sinks.File": {
"target": "Package",
"version": "[5.0.1-dev-00972, )"
},
"System.Management": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.407\\RuntimeIdentifierGraph.json"
}
}
},
"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj",
"projectName": "MasstransferExporter",
"projectPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj",
"packagesPath": "C:\\Users\\huangxianguo\\.nuget\\packages\\",
"outputPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\huangxianguo\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {
"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj": {
"projectPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj"
},
"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\MasstransferInfrastructure.csproj": {
"projectPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\MasstransferInfrastructure.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"dependencies": {
"Serilog": {
"target": "Package",
"version": "[4.0.0, )"
},
"Serilog.Sinks.Console": {
"target": "Package",
"version": "[6.0.0, )"
},
"System.Diagnostics.Process": {
"target": "Package",
"version": "[4.3.0, )"
},
"System.Management": {
"target": "Package",
"version": "[8.0.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.407\\RuntimeIdentifierGraph.json"
}
}
},
"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\MasstransferInfrastructure.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\MasstransferInfrastructure.csproj",
"projectName": "MasstransferInfrastructure",
"projectPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\MasstransferInfrastructure.csproj",
"packagesPath": "C:\\Users\\huangxianguo\\.nuget\\packages\\",
"outputPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\huangxianguo\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net7.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"projectReferences": {
"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj": {
"projectPath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net7.0": {
"targetAlias": "net7.0",
"dependencies": {
"MQTTnet": {
"target": "Package",
"version": "[4.3.6.1152, )"
},
"Masuit.Tools.Core": {
"target": "Package",
"version": "[2024.3.4, )"
},
"Microsoft.Data.Sqlite": {
"target": "Package",
"version": "[9.0.0-preview.2.24128.4, )"
},
"Serilog": {
"target": "Package",
"version": "[4.0.0, )"
},
"Stateless": {
"target": "Package",
"version": "[5.15.0, )"
},
"System.Data.SQLite": {
"target": "Package",
"version": "[1.0.118, )"
},
"sqlite-net": {
"target": "Package",
"version": "[1.6.292, )"
},
"sqlite-net-sqlcipher": {
"target": "Package",
"version": "[1.9.172, )"
}
},
"imports": [ "imports": [
"net461", "net461",
"net462", "net462",

View File

@ -12,12 +12,4 @@
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\huangxianguo\.nuget\packages\" /> <SourceRoot Include="C:\Users\huangxianguo\.nuget\packages\" />
</ItemGroup> </ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)entityframework\6.4.4\buildTransitive\netcoreapp3.0\EntityFramework.props" Condition="Exists('$(NuGetPackageRoot)entityframework\6.4.4\buildTransitive\netcoreapp3.0\EntityFramework.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.entityframeworkcore\7.0.15\buildTransitive\net6.0\Microsoft.EntityFrameworkCore.props" Condition="Exists('$(NuGetPackageRoot)microsoft.entityframeworkcore\7.0.15\buildTransitive\net6.0\Microsoft.EntityFrameworkCore.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgEntityFramework Condition=" '$(PkgEntityFramework)' == '' ">C:\Users\huangxianguo\.nuget\packages\entityframework\6.4.4</PkgEntityFramework>
<PkgSystem_Data_SQLite_EF6 Condition=" '$(PkgSystem_Data_SQLite_EF6)' == '' ">C:\Users\huangxianguo\.nuget\packages\system.data.sqlite.ef6\1.0.118</PkgSystem_Data_SQLite_EF6>
</PropertyGroup>
</Project> </Project>

View File

@ -1,10 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\8.0.0\buildTransitive\net6.0\System.Text.Json.targets')" />
<Import Project="$(NuGetPackageRoot)entityframework\6.4.4\buildTransitive\netcoreapp3.0\EntityFramework.targets" Condition="Exists('$(NuGetPackageRoot)entityframework\6.4.4\buildTransitive\netcoreapp3.0\EntityFramework.targets')" />
<Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.7\buildTransitive\net7.0\SQLitePCLRaw.lib.e_sqlite3.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlite3\2.1.7\buildTransitive\net7.0\SQLitePCLRaw.lib.e_sqlite3.targets')" />
<Import Project="$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlcipher\2.1.2\buildTransitive\net7.0\SQLitePCLRaw.lib.e_sqlcipher.targets" Condition="Exists('$(NuGetPackageRoot)sqlitepclraw.lib.e_sqlcipher\2.1.2\buildTransitive\net7.0\SQLitePCLRaw.lib.e_sqlcipher.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\7.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions\7.0.0\buildTransitive\net6.0\Microsoft.Extensions.Logging.Abstractions.targets')" />
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -1,106 +1,8 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "qJh0L70+oWr2dB9G/p2yrEix7NcG7uEXZRmwdZRxjEpz0cpVLcoFODENIyQIpm9yl4aXXzoHRU2g7ZXGyPKNtg==", "dgSpecHash": "lKqzI7Zi+7ywiTow2UmGnbyXvHXAdJeWivQU3sCrCXnS69mopxT7WSJEhfv61YjBsJZqIjyY+7Tryowll6nC2g==",
"success": true, "success": true,
"projectFilePath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj", "projectFilePath": "C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [],
"C:\\Users\\huangxianguo\\.nuget\\packages\\anglesharp\\1.1.2\\anglesharp.1.1.2.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\anglesharp.css\\1.0.0-beta.139\\anglesharp.css.1.0.0-beta.139.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\castle.core\\5.1.1\\castle.core.5.1.1.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\dnsclient\\1.7.0\\dnsclient.1.7.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\entityframework\\6.4.4\\entityframework.6.4.4.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\masuit.tools.abstractions\\2024.3.4\\masuit.tools.abstractions.2024.3.4.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\masuit.tools.core\\2024.3.4\\masuit.tools.core.2024.3.4.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.csharp\\4.7.0\\microsoft.csharp.4.7.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.data.sqlite\\9.0.0-preview.2.24128.4\\microsoft.data.sqlite.9.0.0-preview.2.24128.4.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.data.sqlite.core\\9.0.0-preview.2.24128.4\\microsoft.data.sqlite.core.9.0.0-preview.2.24128.4.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.entityframeworkcore\\7.0.15\\microsoft.entityframeworkcore.7.0.15.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.entityframeworkcore.abstractions\\7.0.15\\microsoft.entityframeworkcore.abstractions.7.0.15.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.entityframeworkcore.analyzers\\7.0.15\\microsoft.entityframeworkcore.analyzers.7.0.15.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.caching.abstractions\\7.0.0\\microsoft.extensions.caching.abstractions.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.caching.memory\\7.0.0\\microsoft.extensions.caching.memory.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.configuration\\8.0.0\\microsoft.extensions.configuration.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\8.0.0\\microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\8.0.0\\microsoft.extensions.configuration.fileextensions.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.configuration.json\\8.0.0\\microsoft.extensions.configuration.json.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\7.0.0\\microsoft.extensions.dependencyinjection.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\7.0.0\\microsoft.extensions.dependencyinjection.abstractions.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\8.0.0\\microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\8.0.0\\microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\8.0.0\\microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.logging\\7.0.0\\microsoft.extensions.logging.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\7.0.0\\microsoft.extensions.logging.abstractions.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.options\\7.0.0\\microsoft.extensions.options.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.extensions.primitives\\8.0.0\\microsoft.extensions.primitives.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.win32.primitives\\4.3.0\\microsoft.win32.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\microsoft.win32.registry\\5.0.0\\microsoft.win32.registry.5.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\mqttnet\\4.3.6.1152\\mqttnet.4.3.6.1152.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\runtime.native.system\\4.3.0\\runtime.native.system.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\runtime.native.system.data.sqlclient.sni\\4.7.0\\runtime.native.system.data.sqlclient.sni.4.7.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\runtime.win-x64.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\runtime.win-x86.runtime.native.system.data.sqlclient.sni\\4.4.0\\runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\serilog\\4.0.0\\serilog.4.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\serilog.sinks.console\\6.0.0\\serilog.sinks.console.6.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\serilog.sinks.file\\5.0.1-dev-00972\\serilog.sinks.file.5.0.1-dev-00972.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sharpcompress\\0.37.2\\sharpcompress.0.37.2.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sixlabors.fonts\\2.0.3\\sixlabors.fonts.2.0.3.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sixlabors.imagesharp\\3.1.4\\sixlabors.imagesharp.3.1.4.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sixlabors.imagesharp.drawing\\2.1.3\\sixlabors.imagesharp.drawing.2.1.3.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlite-net\\1.6.292\\sqlite-net.1.6.292.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlite-net-sqlcipher\\1.9.172\\sqlite-net-sqlcipher.1.9.172.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlitepclraw.bundle_e_sqlcipher\\2.1.2\\sqlitepclraw.bundle_e_sqlcipher.2.1.2.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlitepclraw.bundle_e_sqlite3\\2.1.7\\sqlitepclraw.bundle_e_sqlite3.2.1.7.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlitepclraw.core\\2.1.7\\sqlitepclraw.core.2.1.7.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlitepclraw.lib.e_sqlcipher\\2.1.2\\sqlitepclraw.lib.e_sqlcipher.2.1.2.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlitepclraw.lib.e_sqlite3\\2.1.7\\sqlitepclraw.lib.e_sqlite3.2.1.7.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlitepclraw.provider.e_sqlcipher\\2.1.2\\sqlitepclraw.provider.e_sqlcipher.2.1.2.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\sqlitepclraw.provider.e_sqlite3\\2.1.7\\sqlitepclraw.provider.e_sqlite3.2.1.7.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\stateless\\5.15.0\\stateless.5.15.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\stub.system.data.sqlite.core.netstandard\\1.0.118\\stub.system.data.sqlite.core.netstandard.1.0.118.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.codedom\\8.0.0\\system.codedom.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.collections.immutable\\8.0.0\\system.collections.immutable.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.configuration.configurationmanager\\8.0.0\\system.configuration.configurationmanager.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.data.sqlclient\\4.8.1\\system.data.sqlclient.4.8.1.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.data.sqlite\\1.0.118\\system.data.sqlite.1.0.118.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.data.sqlite.core\\1.0.118\\system.data.sqlite.core.1.0.118.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.data.sqlite.ef6\\1.0.118\\system.data.sqlite.ef6.1.0.118.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.diagnostics.eventlog\\8.0.0\\system.diagnostics.eventlog.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.diagnostics.performancecounter\\7.0.0\\system.diagnostics.performancecounter.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.diagnostics.process\\4.3.0\\system.diagnostics.process.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.management\\8.0.0\\system.management.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.memory\\4.5.3\\system.memory.4.5.3.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.reflection.emit.lightweight\\4.7.0\\system.reflection.emit.lightweight.4.7.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.security.accesscontrol\\5.0.0\\system.security.accesscontrol.5.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.security.cryptography.protecteddata\\8.0.0\\system.security.cryptography.protecteddata.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.security.principal.windows\\5.0.0\\system.security.principal.windows.5.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.text.encoding.codepages\\7.0.0\\system.text.encoding.codepages.7.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.text.encodings.web\\8.0.0\\system.text.encodings.web.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.text.json\\8.0.0\\system.text.json.8.0.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.threading.thread\\4.3.0\\system.threading.thread.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\system.threading.threadpool\\4.3.0\\system.threading.threadpool.4.3.0.nupkg.sha512",
"C:\\Users\\huangxianguo\\.nuget\\packages\\zstdsharp.port\\0.8.0\\zstdsharp.port.0.8.0.nupkg.sha512"
],
"logs": [] "logs": []
} }

View File

@ -1 +1 @@
"restore":{"projectUniqueName":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj","projectName":"MasstransferExporter","projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj","outputPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net7.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net7.0":{"targetAlias":"net7.0","projectReferences":{"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj":{"projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferCommon\\MasstransferCommon.csproj"},"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\MasstransferInfrastructure.csproj":{"projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferInfrastructure\\MasstransferInfrastructure.csproj"}}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net7.0":{"targetAlias":"net7.0","dependencies":{"Serilog":{"target":"Package","version":"[4.0.0, )"},"Serilog.Sinks.Console":{"target":"Package","version":"[6.0.0, )"},"System.Diagnostics.Process":{"target":"Package","version":"[4.3.0, )"},"System.Management":{"target":"Package","version":"[8.0.0, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\7.0.407\\RuntimeIdentifierGraph.json"}} "restore":{"projectUniqueName":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj","projectName":"MasstransferExporter","projectPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\MasstransferExporter.csproj","outputPath":"C:\\workspace\\code_repos\\haiju\\MasstransferExporter\\MasstransferExporter\\obj\\","projectStyle":"PackageReference","originalTargetFrameworks":["net7.0"],"sources":{"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net7.0":{"targetAlias":"net7.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net7.0":{"targetAlias":"net7.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\7.0.407\\RuntimeIdentifierGraph.json"}}

View File

@ -1 +1 @@
17187849296915031 17173822294380307

View File

@ -1,77 +0,0 @@
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace MasstransferInfrastructure.Database.DTO;
/// <summary>
/// 分页结果
/// </summary>
public class Page<T> : INotifyPropertyChanged
{
private int _total;
private int _pages;
private int _currentPage;
private List<T> _data = [];
private int _pageSize;
public int CurrentPage
{
get => _currentPage;
set
{
_currentPage = value;
OnPropertyChanged();
}
}
public int PageSize
{
get => _pageSize;
set
{
_pageSize = value;
OnPropertyChanged();
}
}
public int Total
{
get => _total;
set
{
_total = value;
OnPropertyChanged();
}
}
public int Pages
{
get => _pages;
set
{
_pages = value;
OnPropertyChanged();
}
}
public List<T> Data
{
get => _data;
set
{
_data = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}

View File

@ -1,226 +0,0 @@
using System.Reflection;
using MasstransferInfrastructure.Database.DTO;
using Masuit.Tools;
using Masuit.Tools.Systems;
using SQLite;
namespace MasstransferInfrastructure.Database.Sqlite;
/// <summary>
/// SQLite 数据库ORM工具类
/// </summary>
public class SqliteHelper
{
// 默认的数据库密码
private const string Password = "88888888";
private readonly SQLiteConnection _db;
public SqliteHelper()
{
var profile = Environment.GetEnvironmentVariable("USERPROFILE");
var path = Path.Combine(profile, "masstransfer", "mass-transfer.db");
if (!Directory.Exists(Path.GetDirectoryName(path)!))
{
Directory.CreateDirectory(Path.GetDirectoryName(path)!);
// 将文件复模板数据库复制到目标目录下
var template = Path.Combine(Environment.CurrentDirectory, "mass-transfer.db");
File.Copy(template, path);
}
_db = new SQLiteConnection(path);
_db.Execute($"PRAGMA key = '{Password}'");
}
/// <summary>
/// 插入数据
/// </summary>
/// <param name="item">待插入的数据</param>
/// <typeparam name="T">数据类型</typeparam>
public int Insert<T>(T item)
{
var id = item?.GetType().GetProperty("Id");
if (id != null && id.CanWrite) id.SetValue(item, SnowFlakeNew.LongId.ToString());
var createTime = item?.GetType().GetProperty("CreateTime");
if (createTime != null && createTime.CanWrite) createTime.SetValue(item, DateTime.Now);
return _db.Insert(item);
}
/// <summary>
/// 更新数据
/// </summary>
/// <param name="item">待更新的数据</param>
/// <typeparam name="T">数据类型</typeparam>
public int Update<T>(T item)
{
var updateTime = item?.GetType().GetProperty("UpdateTime");
if (updateTime != null && updateTime.CanWrite) updateTime.SetValue(item, DateTime.Now);
return _db.Update(item);
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="id">待删除数据的ID</param>
/// <typeparam name="T">数据类型</typeparam>
public int DeleteById<T>(object id) where T : new()
{
var type = typeof(T);
var tableName = type.GetCustomAttribute<TableAttribute>()!.Name ?? type.Name;
return _db.Execute($"delete from {tableName} where id = {id}");
}
/// <summary>
/// 删除数据
/// </summary>
/// <param name="item">待删除数据的对象</param>
/// <typeparam name="T">数据类型</typeparam>
public int Delete<T>(T item)
{
return _db.Delete<T>(item);
}
/// <summary>
/// 根据ID获取数据
/// </summary>
/// <param name="id">数据ID</param>
/// <typeparam name="T">数据类型</typeparam>
public T GetById<T>(object id) where T : new()
{
return _db.Get<T>(id);
}
/// <summary>
/// 查询数据
/// </summary>
/// <param name="sql">查询语句</param>
/// <param name="args">查询参数</param>
/// <typeparam name="T">数据类型</typeparam>
public List<T> Query<T>(string sql, params object[] args) where T : new()
{
return _db.Query<T>(sql, args);
}
/// <summary>
/// 查询所有数据
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
public List<T> ListAll<T>() where T : new()
{
return _db.Table<T>().ToList();
}
public T SaveOrUpdate<T>(T item) where T : new()
{
var id = item?.GetType().GetProperty("Id");
if (id != null && id.GetValue(item).IsNullOrEmpty())
// 插入
Insert(item);
else
// 否则是更新操作
Update(item);
return item;
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="sql">SQL语句</param>
public int Execute(string sql)
{
return _db.Execute(sql);
}
/// <summary>
/// 获取当前的表信息
/// </summary>
/// <param name="tableName"></param>
/// <returns></returns>
public List<SQLiteConnection.ColumnInfo> GetTableInfo(string tableName)
{
return _db.GetTableInfo(tableName);
}
/// <summary>
/// 创建表
/// </summary>
/// <param name="entity"></param>
public void CreateTable(Type entity)
{
_db.CreateTable(entity);
}
/// <summary>
/// 分页查询结果
/// </summary>
/// <param name="page"></param>
/// <param name="pageSize"></param>
/// <param name="sql"></param>
/// <param name="args"></param>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public Page<T> Page<T>(int page, int pageSize, string sql, params object[] args) where T : new()
{
var countSql = "select count(*) from ( " + sql + " ) as c";
var total = _db.ExecuteScalar<int>(countSql, args);
var data = Query<T>(sql + " limit " + (page - 1) * pageSize + "," + pageSize, args);
return new Page<T>
{
CurrentPage = page,
PageSize = pageSize,
Total = total,
Pages = total / pageSize + (total % pageSize == 0 ? 0 : 1),
Data = data
};
}
/// <summary>
/// 批量插入
/// </summary>
/// <param name="objects"></param>
/// <param name="runInTransaction"></param>
/// <typeparam name="T"></typeparam>
public void BatchInsert<T>(IEnumerable<T> objects, bool runInTransaction = false) where T : new()
{
if (runInTransaction)
{
_db.RunInTransaction((Action)(() =>
{
foreach (object obj in objects)
Insert(obj);
}));
}
else
{
foreach (object obj in objects)
Insert(obj);
}
}
/// <summary>
/// 更新指定字段
/// </summary>
/// <param name="id"></param>
/// <param name="field"></param>
/// <param name="value"></param>
/// <typeparam name="T"></typeparam>
public void UpdateFieldById<T>(object? id, string field, object? value) where T : new()
{
var type = typeof(T);
var tableName = type.GetCustomAttribute<TableAttribute>()!.Name ?? type.Name;
var sql = $"update {tableName} set {field} = ? where id = ?";
_db.Execute(sql, value, id);
}
}

View File

@ -1,44 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>preview</LangVersion>
<RootNamespace>MasstransferCommunicate</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Folder Include="Database\"/>
<Folder Include="Mqtt\Service\"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Masuit.Tools.Core" Version="2024.3.4" />
<PackageReference Include="Minio" Version="6.0.2" />
<PackageReference Include="MQTTnet" Version="4.3.6.1152"/>
<PackageReference Include="Serilog" Version="4.0.0"/>
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0-preview.2.24128.4"/>
<PackageReference Include="sqlite-net" Version="1.6.292"/>
<PackageReference Include="sqlite-net-sqlcipher" Version="1.9.172"/>
<PackageReference Include="Stateless" Version="5.15.0"/>
<PackageReference Include="System.Data.SQLite" Version="1.0.118"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MasstransferCommon\MasstransferCommon.csproj"/>
</ItemGroup>
<ItemGroup>
<Compile Remove="obj\**" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="obj\**" />
</ItemGroup>
<ItemGroup>
<None Remove="obj\**" />
</ItemGroup>
</Project>

View File

@ -1,88 +0,0 @@
using Minio;
using Minio.DataModel.Args;
namespace MasstransferCommunicate.Minio;
/// <summary>
/// Minio工具类
/// </summary>
public class MinioHelper
{
private readonly IMinioClient _client;
public MinioHelper(string endpoint, string accessKey, string secretKey)
{
_client = new MinioClient()
.WithEndpoint(endpoint)
.WithCredentials(accessKey, secretKey)
.Build();
}
/// <summary>
/// 判断bucket 是否存在
/// </summary>
/// <param name="bucketName"></param>
/// <returns></returns>
public async Task<bool> BucketExistsAsync(string bucketName)
{
return await _client.BucketExistsAsync(new BucketExistsArgs().WithBucket(bucketName));
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="bucketName"></param>
/// <param name="fileName"></param>
/// <param name="filePath"></param>
/// <returns></returns>
public async Task<string> UploadFileAsync(string bucketName, string fileName, string filePath)
{
if (!await BucketExistsAsync(bucketName))
{
await _client.MakeBucketAsync(new MakeBucketArgs().WithBucket(bucketName));
}
await _client.PutObjectAsync(new PutObjectArgs()
.WithBucket(bucketName)
.WithObject(fileName)
.WithFileName(filePath));
return $"{bucketName}/{fileName}";
}
/// <summary>
/// 下载文件
/// </summary>
/// <param name="bucketName"></param>
/// <param name="fileName"></param>
/// <param name="filePath"></param>
public async Task DownloadFileAsync(string bucketName, string fileName, string filePath)
{
if (!await BucketExistsAsync(bucketName))
{
await _client.MakeBucketAsync(new MakeBucketArgs().WithBucket(bucketName));
}
await _client.GetObjectAsync(new GetObjectArgs()
.WithBucket(bucketName)
.WithObject(fileName)
.WithFile(filePath));
}
/// <summary>
/// 删除文件
/// </summary>
/// <param name="bucketName"></param>
/// <param name="fileName"></param>
public async Task DeleteFileAsync(string bucketName, string fileName)
{
if (!await BucketExistsAsync(bucketName))
{
await _client.MakeBucketAsync(new MakeBucketArgs().WithBucket(bucketName));
}
await _client.RemoveObjectAsync(new RemoveObjectArgs()
.WithBucket(bucketName)
.WithObject(fileName));
}
}