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);
|
string requestBody = await ReadRequestBodyAsync(context);
|
||||||
if (requestBody != "")
|
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;
|
var originalBodyStream = context.Response.Body;
|
||||||
|
|
@ -134,7 +170,7 @@ namespace BMA.EHR.Domain.Middlewares
|
||||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||||
var responseBody = new StreamReader(memoryStream).ReadToEnd();
|
var responseBody = new StreamReader(memoryStream).ReadToEnd();
|
||||||
if (responseBody != "")
|
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);
|
var json = JsonSerializer.Deserialize<JsonElement>(responseBody);
|
||||||
if (json.TryGetProperty("message", out var messageElement))
|
if (json.TryGetProperty("message", out var messageElement))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue