This commit is contained in:
Suphonchai Phoonsawat 2025-05-06 19:14:32 +07:00
parent ed0bde9780
commit fffa6bc374

View file

@ -94,7 +94,7 @@ namespace BMA.EHR.Domain.Middlewares
string requestBody = await ReadRequestBodyAsync(context);
if (requestBody != "")
{
if(context.Request.HasFormContentType)
if (context.Request.HasFormContentType)
{
var form = await context.Request.ReadFormAsync(); // อ่าน form-data
@ -128,8 +128,8 @@ namespace BMA.EHR.Domain.Middlewares
requestBodyJson = JsonSerializer.Serialize(JsonSerializer.Deserialize<object>(requestBody), new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true, Converters = { new DateTimeFixConverter() } });
}
}
var originalBodyStream = context.Response.Body;
@ -150,6 +150,17 @@ namespace BMA.EHR.Domain.Middlewares
await _next(context); // ดำเนินการต่อไปยัง Middleware อื่น ๆ
stopwatch.Stop();
var contentType = context.Response.ContentType;
var isFileResponse = contentType != null && (
contentType.StartsWith("application/") ||
contentType.StartsWith("image/") ||
contentType.StartsWith("audio/") ||
context.Response.Headers.ContainsKey("Content-Disposition")
);
var processTime = stopwatch.ElapsedMilliseconds;
var endTime = DateTime.UtcNow;
@ -166,12 +177,29 @@ namespace BMA.EHR.Domain.Middlewares
memoryStream.Seek(0, SeekOrigin.Begin);
var responseBody = new StreamReader(memoryStream).ReadToEnd();
if (responseBody != "")
responseBodyJson = JsonSerializer.Serialize(JsonSerializer.Deserialize<object>(responseBody), new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true, Converters = { new DateTimeFixConverter() } });
var json = JsonSerializer.Deserialize<JsonElement>(responseBody);
if (json.TryGetProperty("message", out var messageElement))
{
message = messageElement.GetString();
if (isFileResponse)
{
responseBodyJson = "";
message = "success";
}
else
{
responseBodyJson = JsonSerializer.Serialize(JsonSerializer.Deserialize<object>(responseBody), new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true, Converters = { new DateTimeFixConverter() } });
var json = JsonSerializer.Deserialize<JsonElement>(responseBody);
if (json.ValueKind == JsonValueKind.Array)
{
message = "success";
}
else
{
if (json.TryGetProperty("message", out var messageElement))
{
message = messageElement.GetString();
}
}
}
}
var logData = new