correctif UTC sur le POST/PUT RDV

This commit is contained in:
Paul Schneider 2026-09-06 19:48:51 +01:00
commit ebe9d0b740
2 changed files with 43 additions and 1 deletions

View file

@ -67,6 +67,7 @@ public class RdvQueryApiController : Controller
var uid = User.GetUserId();
// Security: the caller always posts for themselves.
query.ClientId = uid;
query.EventDate = EnsureUtc(query.EventDate);
ModelState.Remove("Client");
ModelState.Remove("ClientId");
@ -140,7 +141,7 @@ public class RdvQueryApiController : Controller
existing.ActivityCode = query.ActivityCode;
existing.PerformerId = query.PerformerId;
existing.Consent = query.Consent;
existing.EventDate = query.EventDate;
existing.EventDate = EnsureUtc(query.EventDate);
existing.LocationType = query.LocationType;
existing.Reason = query.Reason;
existing.Status = query.Status;
@ -206,4 +207,14 @@ public class RdvQueryApiController : Controller
{
return _context.RdvQueries.Any(e => e.Id == id);
}
private static DateTime EnsureUtc(DateTime value)
{
return value.Kind switch
{
DateTimeKind.Utc => value,
DateTimeKind.Local => value.ToUniversalTime(),
_ => DateTime.SpecifyKind(value, DateTimeKind.Utc)
};
}
}