Files
Wino-Mail/Wino.Core/Services/AuthenticationProvider.cs

37 lines
1.5 KiB
C#
Raw Normal View History

2024-04-18 01:44:37 +02:00
using System;
using Wino.Authentication;
2024-04-18 01:44:37 +02:00
using Wino.Core.Domain;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces;
using IAuthenticationProvider = Wino.Core.Domain.Interfaces.IAuthenticationProvider;
namespace Wino.Core.Services
2024-04-18 01:44:37 +02:00
{
public class AuthenticationProvider : IAuthenticationProvider
2025-02-16 11:35:43 +01:00
{
private readonly INativeAppService _nativeAppService;
private readonly IApplicationConfiguration _applicationConfiguration;
private readonly IAuthenticatorConfig _authenticatorConfig;
2024-04-18 01:44:37 +02:00
public AuthenticationProvider(INativeAppService nativeAppService,
IApplicationConfiguration applicationConfiguration,
IAuthenticatorConfig authenticatorConfig)
{
_nativeAppService = nativeAppService;
_applicationConfiguration = applicationConfiguration;
_authenticatorConfig = authenticatorConfig;
}
public IAuthenticator GetAuthenticator(MailProviderType providerType)
2024-04-18 01:44:37 +02:00
{
// TODO: Move DI
return providerType switch
{
MailProviderType.Outlook => new OutlookAuthenticator(_nativeAppService, _applicationConfiguration, _authenticatorConfig),
MailProviderType.Gmail => new GmailAuthenticator(_authenticatorConfig),
_ => throw new ArgumentException(Translator.Exception_UnsupportedProvider),
};
}
2024-04-18 01:44:37 +02:00
}
}