2024-04-18 01:44:37 +02:00
|
|
|
|
using Wino.Core.Domain.Enums;
|
|
|
|
|
|
using Wino.Core.Domain.Interfaces;
|
2024-11-30 23:05:07 +01:00
|
|
|
|
using Wino.Services.Threading;
|
2024-04-18 01:44:37 +02:00
|
|
|
|
|
|
|
|
|
|
namespace Wino.Core.Services
|
|
|
|
|
|
{
|
|
|
|
|
|
public class ThreadingStrategyProvider : IThreadingStrategyProvider
|
|
|
|
|
|
{
|
|
|
|
|
|
private readonly OutlookThreadingStrategy _outlookThreadingStrategy;
|
|
|
|
|
|
private readonly GmailThreadingStrategy _gmailThreadingStrategy;
|
2024-11-30 23:05:07 +01:00
|
|
|
|
private readonly ImapThreadingStrategy _imapThreadStrategy;
|
2024-04-18 01:44:37 +02:00
|
|
|
|
|
|
|
|
|
|
public ThreadingStrategyProvider(OutlookThreadingStrategy outlookThreadingStrategy,
|
|
|
|
|
|
GmailThreadingStrategy gmailThreadingStrategy,
|
2024-11-30 23:05:07 +01:00
|
|
|
|
ImapThreadingStrategy imapThreadStrategy)
|
2024-04-18 01:44:37 +02:00
|
|
|
|
{
|
|
|
|
|
|
_outlookThreadingStrategy = outlookThreadingStrategy;
|
|
|
|
|
|
_gmailThreadingStrategy = gmailThreadingStrategy;
|
|
|
|
|
|
_imapThreadStrategy = imapThreadStrategy;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public IThreadingStrategy GetStrategy(MailProviderType mailProviderType)
|
|
|
|
|
|
{
|
|
|
|
|
|
return mailProviderType switch
|
|
|
|
|
|
{
|
2025-02-15 12:53:32 +01:00
|
|
|
|
MailProviderType.Outlook => _outlookThreadingStrategy,
|
2024-04-18 01:44:37 +02:00
|
|
|
|
MailProviderType.Gmail => _gmailThreadingStrategy,
|
|
|
|
|
|
_ => _imapThreadStrategy,
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|