New change request abstractions.

This commit is contained in:
Burak Kaan Köse
2024-11-26 20:03:10 +01:00
parent e81b7e2e61
commit a9fffd44d2
38 changed files with 769 additions and 1051 deletions
+18 -10
View File
@@ -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();
}