From de2faef6b2c6d7925fb2dc5b7139d33d526d3c08 Mon Sep 17 00:00:00 2001 From: Aigio Liu Date: Tue, 11 Jul 2023 13:28:40 +0800 Subject: [PATCH] Impl IPlugin.InstallTime --- .../Abstractions/IPlugin.Properties.cs | 5 +++++ .../Abstractions/PluginBase.Properties.cs | 21 +++++++++++++++++-- .../Plugins/Abstractions/PluginBase.cs | 2 ++ src/BD.WTTS.Client/Plugins/PluginsCore.cs | 3 +++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/BD.WTTS.Client/Plugins/Abstractions/IPlugin.Properties.cs b/src/BD.WTTS.Client/Plugins/Abstractions/IPlugin.Properties.cs index 6fc17d86a..68f8f10ad 100644 --- a/src/BD.WTTS.Client/Plugins/Abstractions/IPlugin.Properties.cs +++ b/src/BD.WTTS.Client/Plugins/Abstractions/IPlugin.Properties.cs @@ -66,4 +66,9 @@ partial interface IPlugin /// 插件显示图标图片资源路径,值为 时使用默认图片 /// string? Icon { get; } + + /// + /// 插件安装时间 + /// + DateTimeOffset InstallTime { get; } } diff --git a/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.Properties.cs b/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.Properties.cs index cd14c6578..361a53ea8 100644 --- a/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.Properties.cs +++ b/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.Properties.cs @@ -32,8 +32,6 @@ partial class PluginBase public string CacheDirectory => mCacheDirectory.Value; - public virtual string? Icon => null; - //static byte[][] OfficialPluginHashDatas => Array.Empty(); bool? mIsOfficial; @@ -93,6 +91,25 @@ partial class PluginBase //return false; } } + + public virtual string? Icon => null; + + DateTimeOffset GetInstallTime() + { + try + { + var location = AssemblyLocation; + var time = new FileInfo(location).CreationTime; + return time; + } + catch + { + + } + return default; + } + + public DateTimeOffset InstallTime => mInstallTime.Value; } partial class PluginBase diff --git a/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.cs b/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.cs index bd8e4844b..d51268f7e 100644 --- a/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.cs +++ b/src/BD.WTTS.Client/Plugins/Abstractions/PluginBase.cs @@ -7,11 +7,13 @@ public abstract partial class PluginBase : IPlugin { readonly Lazy mAppDataDirectory; readonly Lazy mCacheDirectory; + readonly Lazy mInstallTime; public PluginBase() { mAppDataDirectory = new(() => GetPluginsDirectory(Name, IOPath.AppDataDirectory)); mCacheDirectory = new(() => GetPluginsDirectory(Name, IOPath.CacheDirectory)); + mInstallTime = new(GetInstallTime); } public virtual IEnumerable? GetMenuTabItems() => null; diff --git a/src/BD.WTTS.Client/Plugins/PluginsCore.cs b/src/BD.WTTS.Client/Plugins/PluginsCore.cs index 9df03fbd9..d62759941 100644 --- a/src/BD.WTTS.Client/Plugins/PluginsCore.cs +++ b/src/BD.WTTS.Client/Plugins/PluginsCore.cs @@ -49,6 +49,8 @@ public static class PluginsCore public string? Icon { get; private set; } + public DateTimeOffset InstallTime { get; private set; } + public void SetValue(IPlugin plugin) { Name = plugin.Name; @@ -63,6 +65,7 @@ public static class PluginsCore CacheDirectory = plugin.CacheDirectory; IsOfficial = plugin.IsOfficial; Icon = plugin.Icon; + InstallTime = plugin.InstallTime; } public void ConfigureDemandServices(IServiceCollection services, Startup startup)