mirror of
https://github.com/DrizzleTime/Foxel.git
synced 2026-05-12 02:20:28 +08:00
27 lines
869 B
C#
27 lines
869 B
C#
using Foxel.Models.DataBase;
|
|
using Foxel.Services.Interface;
|
|
using Foxel.Services.StorageProvider;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace Foxel.Services;
|
|
|
|
public class StorageProviderFactory : IStorageProviderFactory
|
|
{
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
|
public StorageProviderFactory(IServiceProvider serviceProvider)
|
|
{
|
|
_serviceProvider = serviceProvider;
|
|
}
|
|
|
|
public IStorageProvider GetProvider(StorageType storageType)
|
|
{
|
|
return storageType switch
|
|
{
|
|
StorageType.Local => _serviceProvider.GetRequiredService<LocalStorageProvider>(),
|
|
StorageType.Telegram => _serviceProvider.GetRequiredService<TelegramStorageProvider>(),
|
|
_ => throw new ArgumentOutOfRangeException(nameof(storageType), $"不支持的存储类型: {storageType}")
|
|
};
|
|
}
|
|
}
|