2024-04-18 01:44:37 +02:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using MailKit.Net.Imap;
|
|
|
|
|
|
using Wino.Core.Domain.Interfaces;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Wino.Core.Requests.Bundles
|
|
|
|
|
|
{
|
2024-11-26 20:03:10 +01:00
|
|
|
|
public class ImapRequest
|
|
|
|
|
|
{
|
2025-02-15 12:53:32 +01:00
|
|
|
|
public Func<IImapClient, IRequestBase, Task> IntegratorTask { get; }
|
2024-11-26 20:03:10 +01:00
|
|
|
|
public IRequestBase Request { get; }
|
2024-04-18 01:44:37 +02:00
|
|
|
|
|
2025-02-15 12:53:32 +01:00
|
|
|
|
public ImapRequest(Func<IImapClient, IRequestBase, Task> integratorTask, IRequestBase request)
|
2024-11-26 20:03:10 +01:00
|
|
|
|
{
|
|
|
|
|
|
IntegratorTask = integratorTask;
|
|
|
|
|
|
Request = request;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-04-18 01:44:37 +02:00
|
|
|
|
|
2024-11-26 20:03:10 +01:00
|
|
|
|
public class ImapRequest<TRequestBaseType> : ImapRequest where TRequestBaseType : IRequestBase
|
|
|
|
|
|
{
|
2025-02-15 12:53:32 +01:00
|
|
|
|
public ImapRequest(Func<IImapClient, TRequestBaseType, Task> integratorTask, TRequestBaseType request)
|
2024-11-26 20:03:10 +01:00
|
|
|
|
: base((client, request) => integratorTask(client, (TRequestBaseType)request), request)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-04-18 01:44:37 +02:00
|
|
|
|
|
2024-11-26 20:03:10 +01:00
|
|
|
|
public record ImapRequestBundle(ImapRequest NativeRequest, IRequestBase Request, IUIChangeRequest UIChangeRequest) : IRequestBundle<ImapRequest>
|
2024-04-18 01:44:37 +02:00
|
|
|
|
{
|
|
|
|
|
|
public string BundleId { get; set; } = Guid.NewGuid().ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|