Microsoft Graph: Bir olayın Başlangıç ​​veya Bitiş Tarihi güncellenemiyor

Aug 18 2020

Outlook olaylarını güncellemek için Microsoft Graph .NET SDK kullanıyorum . Aşağıdaki kod , bir olayın Subject, ve Bodyözniteliklerini başarıyla günceller . Ancak olayın Startve / veya Endtarihlerini güncellemeye çalıştığımda ( dateTimeTimeZone türünde olan) aşağıda gösterilen hatayı alıyorum:

Soru : Hatanın nedeni ne olabilir ve bunu nasıl çözebiliriz? Olay geçerli bir yerel Başlangıç ve Bitiş tarihleri olarak sahip olduğuna dikkat edin 8/21/2020 11:00AMve 8/21/2020 11:30AMsırasıyla. Aslında, hata ayıklama modunda şunu VS2019gösteriyor:Start.get returns null

Hatanın ekran görüntüsü :

Kod :

  1. Aşağıdaki satırın açıklamasını kaldırırsam yukarıdaki hata oluşur Start = { DateTime = "2020-08-20T08:30:00.0000000", TimeZone = "UTC" }.
  2. Gerçek değerlere sahip kod, kod satırı olmadan iyi çalıştığından, değerleri authProviderve "{id}"değişkenleri hatayla o kadar ilgili değildir Start =.....

...

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);

Yanıtlar

1 GlenScales Aug 20 2020 at 00:12

Özellikte kullanılan nesne türü nedeniyle bunun yerine bunun gibi bir şeye ihtiyacınız var

            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

Aşağıdaki formatta tarih eklemeniz gerekiyor. Umarım sorununuzu çözer.

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" } 
    };