mirror of
https://github.com/DrizzleTime/Foxel.git
synced 2026-06-07 16:39:36 +08:00
Initial commit
This commit is contained in:
26
Services/StorageProviderFactory.cs
Normal file
26
Services/StorageProviderFactory.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
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}")
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user