Files
linker/cmonitor/plugins/notify/NotifyStartup.cs
2024-05-10 16:48:13 +08:00

46 lines
1.5 KiB
C#

using cmonitor.config;
using cmonitor.plugins.notify.messenger;
using cmonitor.plugins.notify.report;
using cmonitor.startup;
using Microsoft.Extensions.DependencyInjection;
using System.Reflection;
namespace cmonitor.plugins.notify
{
public sealed class NotifyStartup : IStartup
{
public StartupLevel Level => StartupLevel.Normal;
public string Name => "notify";
public bool Required => false;
public string[] Dependent => new string[] { };
public StartupLoadType LoadType => StartupLoadType.Normal;
public void AddClient(ServiceCollection serviceCollection, Config config, Assembly[] assemblies)
{
serviceCollection.AddSingleton<NotifyReport>();
if (OperatingSystem.IsWindows()) serviceCollection.AddSingleton<INotify, NotifyWindows>();
else if (OperatingSystem.IsLinux()) serviceCollection.AddSingleton<INotify, NotifyLinux>();
else if (OperatingSystem.IsMacOS()) serviceCollection.AddSingleton<INotify, NotifyMacOS>();
serviceCollection.AddSingleton<NotifyClientMessenger>();
}
public void AddServer(ServiceCollection serviceCollection, Config config, Assembly[] assemblies)
{
serviceCollection.AddSingleton<NotifyApiController>();
}
public void UseClient(ServiceProvider serviceProvider, Config config, Assembly[] assemblies)
{
}
public void UseServer(ServiceProvider serviceProvider, Config config, Assembly[] assemblies)
{
}
}
}