feat(PostDocumentRequest): update to forward stream instad of whole content

This commit is contained in:
tekh 2025-08-18 14:53:20 +02:00
parent b5082daa1a
commit e8fd49d75d
2 changed files with 8 additions and 9 deletions

View File

@ -7,13 +7,13 @@ namespace Leanetec.EConnect.Client.Order;
public record PostDocumentRequest(string TenantId, int OrderId) : HttpRequest<Response<ProblemDetail>>
{
public UploadDocumentRequest ToUploadDocument(StreamContent content)
public UploadDocumentRequest ToUploadDocument(Stream stream, string fileName)
{
return new UploadDocumentRequest(this, content);
return new UploadDocumentRequest(this, stream, fileName);
}
}
public record UploadDocumentRequest(PostDocumentRequest Original, StreamContent Content) : PostDocumentRequest(Original);
public record UploadDocumentRequest(PostDocumentRequest Original, Stream Stream, string FileName) : PostDocumentRequest(Original);
public class PostDocumentRequestHandler : IRequestHandler<UploadDocumentRequest, Response<ProblemDetail>>
{
@ -27,7 +27,8 @@ public class PostDocumentRequestHandler : IRequestHandler<UploadDocumentRequest,
public async Task<Response<ProblemDetail>> Handle(UploadDocumentRequest request, CancellationToken cancel)
{
return await _client.PostAsync(
request.Content,
request.Stream,
request.FileName,
$"api/public/v{request.ApiVersion}/econnect/order/document",
new { request.TenantId, request.OrderId },
cancel

View File

@ -30,13 +30,11 @@ public class OrderController : ControllerBase
[HttpPost("document")]
public async Task<IActionResult> PostDocument(IFormFile file, [FromQuery] PostDocumentRequest request, CancellationToken cancel)
{
using var content = new MultipartFormDataContent();
using var stream = file.OpenReadStream();
using var streamContent = new StreamContent(stream);
streamContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(file.ContentType);
content.Add(streamContent, "file", file.FileName);
var res = await _mediator.Send(request.ToUploadDocument(streamContent), cancel);
var uploadRequest = request.ToUploadDocument(stream, file.FileName);
var res = await _mediator.Send(uploadRequest, cancel);
return res.Ok
? StatusCode(res.StatusCodeInt)