fix Convert FormData แล้วเขียนลง Logs
This commit is contained in:
parent
e4dccb5c1f
commit
0fb3fd1d06
2 changed files with 63 additions and 2 deletions
25
BMA.EHR.Domain/Middlewares/DateTimeFixConverter.cs
Normal file
25
BMA.EHR.Domain/Middlewares/DateTimeFixConverter.cs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace BMA.EHR.Domain.Middlewares
|
||||
{
|
||||
public class DateTimeFixConverter : JsonConverter<DateTime>
|
||||
{
|
||||
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
||||
{
|
||||
if (reader.TokenType == JsonTokenType.String)
|
||||
{
|
||||
if (DateTime.TryParse(reader.GetString(), out var date))
|
||||
{
|
||||
return date;
|
||||
}
|
||||
}
|
||||
throw new JsonException("Invalid date format.");
|
||||
}
|
||||
|
||||
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
|
||||
{
|
||||
writer.WriteStringValue(value.ToString("yyyy-MM-dd"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -97,7 +97,43 @@ namespace BMA.EHR.Domain.Middlewares
|
|||
|
||||
string requestBody = await ReadRequestBodyAsync(context);
|
||||
if (requestBody != "")
|
||||
requestBodyJson = JsonSerializer.Serialize(JsonSerializer.Deserialize<object>(requestBody), new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true });
|
||||
{
|
||||
if(context.Request.HasFormContentType)
|
||||
{
|
||||
var form = await context.Request.ReadFormAsync(); // อ่าน form-data
|
||||
|
||||
var formData = new Dictionary<string, object>();
|
||||
foreach (var field in form)
|
||||
{
|
||||
formData[field.Key] = field.Value.ToString();
|
||||
}
|
||||
// อ่านไฟล์ที่ถูกส่งมา (ถ้ามี)
|
||||
if (form.Files.Count > 0)
|
||||
{
|
||||
var fileDataList = new List<object>();
|
||||
|
||||
foreach (var file in form.Files)
|
||||
{
|
||||
fileDataList.Add(new
|
||||
{
|
||||
FileName = file.FileName,
|
||||
ContentType = file.ContentType,
|
||||
Size = file.Length
|
||||
});
|
||||
}
|
||||
|
||||
formData["Files"] = fileDataList;
|
||||
}
|
||||
|
||||
requestBodyJson = JsonSerializer.Serialize(formData, new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true, Converters = { new DateTimeFixConverter() } });
|
||||
}
|
||||
else
|
||||
{
|
||||
requestBodyJson = JsonSerializer.Serialize(JsonSerializer.Deserialize<object>(requestBody), new JsonSerializerOptions { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, WriteIndented = true, Converters = { new DateTimeFixConverter() } });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
var originalBodyStream = context.Response.Body;
|
||||
|
|
@ -134,7 +170,7 @@ 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 });
|
||||
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))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue