2017-07-03 3 views
0

Ich schreibe eine Anwendung, um Benutzern zu helfen, wiederkehrende Ereignisse zu planen und die dotnet sdk für Microsoft Graph zu nutzen.
Mit Code ähnlich, plane ich ein wiederkehrendes Ereignis mit einem NumberOfOccurences, um die Anzahl der Sitzungen zu begrenzen, die erstellt werden.Wiederholung des letzten Vorkommens Enddatum der Besprechung Serien im Diagramm

var updatingEvent = new Event 
{ 
    Subject = "test", 
    Location = new Location { DisplayName = "Montreal" }, 
    IsAllDay = false, 
    Start = getTimeZoneFromDateTime(DateTime.Now, tzLabel), 
    End = getTimeZoneFromDateTime(DateTime.Now.AddHours(1), tzLabel), 
    OnlineMeetingUrl = "someurl", 
    Body = new ItemBody { Content = emailBody.HtmlBody, ContentType = BodyType.Html }, 
    ShowAs = FreeBusyStatus.Busy, 
    Recurrence = new PatternedRecurrence 
      { 
       Range = new RecurrenceRange 
       { 
        StartDate = new Date(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day), 
        Type = RecurrenceRangeType.Numbered, 
        NumberOfOccurrences = 3 
       }, 
       Pattern = new RecurrencePattern 
       { 
        Interval = 1, 
        Type = RecurrencePatternType.Daily 
       } 
      }; 
}; 

Ich mag würde die EndDate des letzten Vorkommen (oder das Wiederauftreten Enddatum) erhalten, ohne über alle Vorkommnisse abzufragen und/oder auf meiner Seite berechnen zu müssen. So könnte ich Instanzen abfragen, ohne ein beliebiges Datum durchlaufen und/oder setzen zu müssen.

var request = graphClient.Users[Settings.SkypeUserEmail].Calendar 
               .Events[updatedEvent.id] 
               .Instances 
               .Request(); 
request.QueryOptions.Add(new QueryOption("startDateTime", DateTime.Now.AddDays(-1).ToString("s"))); 
request.QueryOptions.Add(new QueryOption("endDateTime", DateTime.Now.AddDays(5).ToString("s"))); 

Danke für Ihre Hilfe! var instancesPage = erwarten request.GetAsync();

Antwort

0

Ich dachte, dan-Silber seine Antwort aktualisieren würde angegeben, es ist derzeit nicht möglich.
Wenn Sie ein wiederkehrendes Ereignis mit einer festgelegten Anzahl von Vorkommen erstellen, ist das Enddatum null. Sie müssen entweder zufällige Abfragedaten auf der API werfen oder alle Vorkommen abfragen, um das Gesamtenddatum der Serie zu erhalten. Es wäre schön, in zukünftigen Versionen des Graphen etwas hinzuzufügen.

0

Update: Die folgende Antwort funktioniert nicht, da endDate null ist, wenn die Reihe mit dem Parameter numberOfOccurences eingestellt wird.

Ich sehe keinen direkten Weg, um das letzte Vorkommen abzufragen, aber so etwas könnte funktionieren. Grundsätzlich die Instanzen der Serie über einen großen Zeitraum abfragen und den letzten auswählen.

https://graph.microsoft.com/v1.0/me/events/[series master id]/instances?startdatetime=2010-01-01T00:00:00&enddatetime=2020-01-01T00:00:00&$orderby=start/dateTime desc&$top=1


Es gibt ein recurrence Objekt in der Serie Ereignisse, das ein endDate Feld hat. Beispiel: example recurrence JSON

Wenn Sie das Serienereignis nicht haben, können Sie die seriesMasterId -Eigenschaft finden, die der Reihe bei jedem Wiederholungsereignis entspricht.

Relevante Links:

+0

Danke für diese Antwort. Das bedeutet im Grunde, dass Sie ein beliebiges Enddatum angeben müssen. Aus Zuverlässigkeitsgründen ist das alles nicht optimal. Mein Verständnis ist, dass es derzeit keine Möglichkeit gibt, das letzte Vorkommen einer Serie zu erhalten, ohne ein beliebiges Enddatum anzugeben oder alle Daten abzufragen, richtig? – baywet

Verwandte Themen