Files
MoShiro/backend/src/Monitor.Backend.Storage.Sqlite/StorageServiceCollectionExtensions.cs
T
2026-10-04 21:46:39 +08:00

30 lines
1.5 KiB
C#

using Fleet.Server;
using Microsoft.Extensions.DependencyInjection;
using Monitor.Backend.Application;
namespace Monitor.Backend.Storage.Sqlite;
public static class StorageServiceCollectionExtensions
{
/// <summary>注册 SQLite + 段文件存储:实现 Application 的全部存储端口,同时实现 Fleet 的 <see cref="IFleetStore"/>。</summary>
public static IServiceCollection AddMonitorSqlite(this IServiceCollection services, string dataDirectory)
{
services.AddSingleton(_ => new SqliteDatabase(dataDirectory));
services.AddSingleton<SqliteAgentStore>();
services.AddSingleton<IAgentStore>(p => p.GetRequiredService<SqliteAgentStore>());
services.AddSingleton<IFleetStore>(p => p.GetRequiredService<SqliteAgentStore>());
services.AddSingleton<IJoinTokenStore, SqliteJoinTokenStore>();
services.AddSingleton<IProbeStore, SqliteProbeStore>();
services.AddSingleton<ISettingsStore, SqliteSettingsStore>();
services.AddSingleton<ITaskStore, SqliteTaskStore>();
services.AddSingleton<ITestStore, SqliteTestStore>();
services.AddSingleton<IEventStore, SqliteEventStore>();
services.AddSingleton<IHostStore, SqliteHostStore>();
services.AddSingleton<IAuthStore, SqliteAuthStore>();
services.AddSingleton<IRawStore, SqliteRawStore>();
services.AddSingleton<IMetricStore, SqliteMetricStore>();
services.AddSingleton<IStorageHealth, SqliteStorageHealth>();
return services;
}
}