aboutsummaryrefslogtreecommitdiff
path: root/RhSolutions.AddIn/Services/ReaderFactory.cs
blob: d2a4b6348fcd35ab4d45cc032d0c1c47955d7ff5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace RhSolutions.Services;

public class ReaderFactory
{
    private readonly IServiceProvider _serviceProvider;

    public ReaderFactory(IServiceProvider serviceProvider)
    {
        _serviceProvider = serviceProvider;     
    }

    public IReader GetReader(string readerName)
    {
        return readerName switch
        {
            "Magic" => (IReader)_serviceProvider.GetService(typeof(MagicReader)),
            "Excel" => (IReader)_serviceProvider.GetService(typeof(ExcelReader)),
            _ => (IReader)_serviceProvider.GetService(typeof(ExcelReader))
        };
    }
}