Microsoft Graph: impossibile aggiornare la data di inizio o di fine di un evento

Aug 18 2020

Sto usando Microsoft Graph .NET SDK per aggiornare gli eventi di Outlook. Il codice seguente aggiorna correttamente gli attributi Subjecte Bodydi un evento. Ma quando provo ad aggiornare le Starte / o le Enddate dell'evento (che sono di tipo dateTimeTimeZone ) ottengo l'errore mostrato di seguito:

Domanda : quale potrebbe essere la causa dell'errore e come possiamo risolverlo? Tieni presente che l'evento ha date di inizio e fine locali valide rispettivamente come 8/21/2020 11:00AMe 8/21/2020 11:30AM. In realtà, in modalità debug, VS2019mostra:Start.get returns null

Screenshot dell'errore :

Codice :

  1. L'errore sopra si verifica se rimuovo il commento dalla riga Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" }sottostante.
  2. I valori di authProvidere "{id}"variabili non sono rilevanti per l'errore in quanto il codice con i valori reali funziona correttamente senza la riga Start =....del codice.

...

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var @event = new Event
{
    Subject = "Test subject",
    Body= new ItemBody { Content = "Test body content"}
    //Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" }
};

await graphClient.Me.Events["{id}"]
    .Request()
    .UpdateAsync(@event);

Risposte

1 GlenScales Aug 20 2020 at 00:12

Hai bisogno di qualcosa di simile invece a causa del tipo di oggetto utilizzato nella proprietà

            var @event = new Event
        {
            Subject = "Test subject",
            Body = new ItemBody { Content = "Test body content" },
            Start = new DateTimeTimeZone {  DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" } 
        };
1 RajeevKumar Aug 20 2020 at 04:06

È necessario aggiungere la data nel formato seguente. Spero che risolverà il tuo problema.

var @event = new Event
    {
        Subject = "Test subject",
        Body = new ItemBody { Content = "Test body content" },
        Start = new DateTimeTimeZone {  DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "GMT Standard Time" } 
    };