New change request abstractions.
This commit is contained in:
@@ -5,19 +5,27 @@ using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Core.Requests.Bundles
|
||||
{
|
||||
//public abstract record TaskRequestBundleBase()
|
||||
//{
|
||||
// public abstract Task ExecuteAsync(ImapClient executorImapClient);
|
||||
//}
|
||||
public class ImapRequest
|
||||
{
|
||||
public Func<ImapClient, IRequestBase, Task> IntegratorTask { get; }
|
||||
public IRequestBase Request { get; }
|
||||
|
||||
//public record TaskRequestBundle(Func<ImapClient, Task> NativeRequest) : TaskRequestBundleBase
|
||||
//{
|
||||
// public override async Task ExecuteAsync(ImapClient executorImapClient) => await NativeRequest(executorImapClient).ConfigureAwait(false);
|
||||
//}
|
||||
public ImapRequest(Func<ImapClient, IRequestBase, Task> integratorTask, IRequestBase request)
|
||||
{
|
||||
IntegratorTask = integratorTask;
|
||||
Request = request;
|
||||
}
|
||||
}
|
||||
|
||||
public record ImapRequest(Func<ImapClient, Task> IntegratorTask, IRequestBase Request) { }
|
||||
public class ImapRequest<TRequestBaseType> : ImapRequest where TRequestBaseType : IRequestBase
|
||||
{
|
||||
public ImapRequest(Func<ImapClient, TRequestBaseType, Task> integratorTask, TRequestBaseType request)
|
||||
: base((client, request) => integratorTask(client, (TRequestBaseType)request), request)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public record ImapRequestBundle(ImapRequest NativeRequest, IRequestBase Request) : IRequestBundle<ImapRequest>
|
||||
public record ImapRequestBundle(ImapRequest NativeRequest, IRequestBase Request, IUIChangeRequest UIChangeRequest) : IRequestBundle<ImapRequest>
|
||||
{
|
||||
public string BundleId { get; set; } = Guid.NewGuid().ToString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user