Microsoft Graph Filter не фильтрует правильноC#

Место общения программистов C#
Гость
Microsoft Graph Filter не фильтрует правильно

Сообщение Гость »


Я использую C# для получения сообщений из почтового ящика. По неизвестным причинам я могу прочитать только 11 сообщений одновременно. Но это не проблема. Поэтому я решил сохранить полученную дату и время последнего сообщения, чтобы начать читать новые сообщения позже (при следующем запуске).

Код: Выделить всё

DateTime lastrun = DateTime.Parse(File.ReadAllText("lastrun.txt"));
try {
var messages = await graphServiceClient.Users["***User***"].Messages.GetAsync((requestConfiguration) => {
string filter = "ReceivedDateTime ge " + String.Format("{0:yyyy-MM-ddTHH:mm:sszzzzzz}", lastrun);
requestConfiguration.QueryParameters.Filter = filter;
});
foreach (var message in messages.Value) {
// do my stuff
if (lastrun < message.ReceivedDateTime) {
lastrun = message.ReceivedDateTime.Value.DateTime;
}
}
} catch (Exception ex) {
throw;
}
Затем я сохраняю DateTime.

Код: Выделить всё

File.WriteAllText("lastrun.txt",lastrun.ToString("yyyy-MM-ddTHH:mm:sszzzzzz"));
В моем примере первое сообщение получено по адресу «2024-02-12T07:10:31+01:00»
Последнее письмо получено по адресу «2024-02-12T07:16:56+01:00»
Затем я запускаю программу и используется следующий фильтр:

Код: Выделить всё

receivedDateTime ge 2024-02-12T07:16:56+01:00
My method continues to read the same messages again and saves the same "enddate" again.
Why is Microsoft reading messages, which are recieved before the date of the filter? Do I have some problems with different timezones?


Источник: https://stackoverflow.com/questions/781 ... ng-correct

Вернуться в «C#»