feat(PostDocumentRequest): update to forward stream instad of whole content
This commit is contained in:
parent
b5082daa1a
commit
e8fd49d75d
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user