Estoy intentando recibir mensajes de correo electrónico a través de Microsoft Graph API:
requestBuilder
.Delta()
.Request()
.Expand("attachments")
.GetAsync(ChildCancellationToken.Token);
pero los mensajes vienen en orden descendente por FechaRecibida y Hora. Por ejemplo, tenemos 15 mensajes nuevos con FechaRecibida y Hora = n, donde n representa la fecha y hora.
En la primera parte vendrá:
[15,14,13,12,11,10,9,8,7,6 (deltaHash="someValue")]
en segundo:
[5,4,3,2,1 (deltaHash=NULL)]
Por lo tanto, el correo electrónico más antiguo será el más reciente (LIFO, no FIFO).
Pero espero obtener:
[1,2,3,4,5,6,7,8,9,10 (deltaHash="someValue")]
[11,23,13,14,15 (deltaHash=NULL)]
Lo que probé: probé OrderBy(valor de cadena).
Para estos dos obtengo excepciones:
.OrderBy("ReceivedDateTime asc")
.OrderBy("ReceivedDateTime")
Esto está funcionando bien:
.OrderBy("ReceivedDateTime desc")
pero este es el mismo comportamiento predeterminado y creo que en realidad es un error. Por lo tanto, no hay forma de ordenar los correos electrónicos en orden ASC.
¿Cómo resolver a primera vista un requisito muy simple y común?
Hola, si la respuesta publicada resuelve tu pregunta, márcala como respuesta haciendo clic en la marca de verificación. Hacerlo ayuda a otros a encontrar respuestas a sus preguntas. Consulte meta.stackexchange.com/questions/5234/…
- Shiva Keshav Varma
28 de marzo de 2021 a las 5:15
------------------------------------
Parece que se trata de un problema conocido, tal como se especifica en la documentación.
La única expresión $orderby admitida es
$orderby=fechahorarecibida+desc. Si no incluyese un $orderby
expresión, el orden de devolución no está garantizado.
Por ahora, debes ordenarlos escribiendo tu propio código.
2
Gracias por la respuesta. Lo hice exactamente de la misma manera (clasificando por cliente). Pero empresas como Microsoft podrían proporcionar una API más confiable.
-Vitaly Radionov
29 de marzo de 2021 a las 1:43
¡Sí! Quizás en el futuro lo arreglen. Por ahora, continúa e invierte el orden descendente que obtienes al escribir el código.
- Shiva Keshav Varma
29 de marzo de 2021 a las 4:13
------------------------------------
Puedo confirmar que .OrderBy("ReceivedDateTime asc") ahora funciona a partir de la versión de la API de Microsoft-graph que estoy usando, que es 5.36.0