diff --git a/src/Leanetec.EConnect.Client/Interface/IEConnectClient.cs b/src/Leanetec.EConnect.Client/Interface/IEConnectClient.cs index 890ac22..1e5c081 100644 --- a/src/Leanetec.EConnect.Client/Interface/IEConnectClient.cs +++ b/src/Leanetec.EConnect.Client/Interface/IEConnectClient.cs @@ -8,4 +8,8 @@ public interface IEConnectClient where TError : class public Task, TError>> GetListAsAsyncEnumerable(string? route = null, object? queryParams = null, CancellationToken cancel = default) where TData : class; + + public Task> PostAsync(string? route = null, object? queryParams = null, CancellationToken cancel = default); + + public Task> PostAsync(StreamContent content, string? route = null, object? queryParams = null, CancellationToken cancel = default); } \ No newline at end of file diff --git a/src/Leanetec.EConnect.Client/Order/PostDocumentRequest.cs b/src/Leanetec.EConnect.Client/Order/PostDocumentRequest.cs new file mode 100644 index 0000000..fb572d3 --- /dev/null +++ b/src/Leanetec.EConnect.Client/Order/PostDocumentRequest.cs @@ -0,0 +1,30 @@ +using Leanetec.EConnect.Client.Dto; +using Leanetec.EConnect.Client.Interface; +using Leanetec.EConnect.Domain.Entities; +using MediatR; + +namespace Leanetec.EConnect.Client.Order; + +public record PostDocumentRequest(string TenantId, int OrderId, StreamContent Content) : HttpRequest> +{ +} + +public class PostDocumentRequestHandler : IRequestHandler> +{ + private readonly IEConnectClient _client; + + public PostDocumentRequestHandler(IEConnectClient client) + { + _client = client; + } + + public async Task> Handle(PostDocumentRequest request, CancellationToken cancel) + { + return await _client.PostAsync( + request.Content, + $"api/public/v{request.ApiVersion}/econnect/order/document/list", + new { request.TenantId, request.OrderId }, + cancel + ); + } +} \ No newline at end of file diff --git a/src/Leanetec.EConnect.Infrastructure/EConnectClient.cs b/src/Leanetec.EConnect.Infrastructure/EConnectClient.cs index 1f1fdf5..35fb5fa 100644 --- a/src/Leanetec.EConnect.Infrastructure/EConnectClient.cs +++ b/src/Leanetec.EConnect.Infrastructure/EConnectClient.cs @@ -90,7 +90,7 @@ public class EConnectClient : IEConnectClient where TError : cl } } - public async Task> PostAsync(string? route = null, object? queryParams = null, CancellationToken cancel = default) + public async Task> PostAsync(string? route = null, object? queryParams = null, CancellationToken cancel = default) where TData : class { route = AddQueryString(route, queryParams); @@ -117,7 +117,7 @@ public class EConnectClient : IEConnectClient where TError : cl } } - public async Task> PostAsync(StreamContent content, string? route = null, object? queryParams = null, CancellationToken cancel = default) + public async Task> PostAsync(StreamContent content, string? route = null, object? queryParams = null, CancellationToken cancel = default) where TData : class { route = AddQueryString(route, queryParams);