1

Ich verwende Office 365 V2-DLL und versuche, DateTime-Wert für Start und End-Eigenschaften von IEvent zu aktualisieren, aber es aktualisiert das Ereignis ohne Fehler nicht.Aktualisiere DateTime-Wert für Start und Ende von IEvent Office 365

Mein Code: -

 try 
     { 
      var taskUpdateMeeting = Task<bool>.Run(async() => 
      { 
       bool updateStatus = false; 
       IEvent meetingToUpdate = await service.Me.Events.GetById(meetingEventId).ExecuteAsync(); 
       if (meetingToUpdate != null) 
       {  
        meetingToUpdate = GetUpdatedEvent(meetingToUpdate, meeting, location, phone); // Function to update the IEvent Obj values needed to update 
        meetingToUpdate.Start.DateTime = "2016-08-06T19:00:00.0000000";  // Sample value to DateTime property 
        meetingToUpdate.End.DateTime = "2016-08-06T19:30:00.0000000"; 
        meetingToUpdate.Start.TimeZone = "Asia/Kolkata";  // Sample value to TimeZone property 
        meetingToUpdate.End.TimeZone = "Asia/Kolkata"; 

        if (invitees != null && invitees.Count > 0) 
         invitees.ForEach((invitee) => meetingToUpdate.Attendees.Add(new Attendee() 
         { 
          EmailAddress = new EmailAddress() 
          { 
           Name = invitee.Name, 
           Address = invitee.Email 
          }, 
          Status = new ResponseStatus() 
          { 
           Response = ResponseType.Accepted, 
           Time = DateTime.Now 
          } 
         })); 
        await meetingToUpdate.UpdateAsync(true); 
        await meetingToUpdate.SaveChangesAsync(); 
        //await meetingToUpdate.SaveChangesAsync(); 
        //await service.Context.SaveChangesAsync(); 


        updateStatus = true; 
       } 
       return updateStatus; 
      }); 
      Task.WaitAll(taskUpdateMeeting); 
      updated = taskUpdateMeeting.Result; 
     } 
     catch (Exception ex) 
     { 
      InsertExceptionLog(userID, username, "UpdateCalendarEvent Excp -> " + ex.GetType(), ex.Message, ex.InnerException != null ? ex.InnerException.ToString() : null, ex.ToString() + ex.StackTrace); 
      updated = false; 
     } 

Das einzige Problem ist mit der Start- und Endzeit. Alle anderen Eigenschaften werden korrekt aktualisiert, wenn die UpdateAsync-Methode aufgerufen wird. Anfangs befindet sich die Besprechung in derselben Zeitzone wie in der aktualisierten TimeZone-Eigenschaft. Bitte schlagen Sie vor, wenn ich hier etwas falsch mache. Lassen Sie mich wissen, ob weitere Informationen erforderlich sind.

+0

Ich empfehle Fiddler installiert und erfassen Sie die API-Anforderungen über die Leitung. Dies ist normalerweise die nützlichste Sache für mich bei der Fehlerbehebung der API. –

Antwort

0

Statt Satz das Datum und die Zeitzone direkt, können wir die starten und End Eigenschaft festgelegt. Das Beispiel unten funktioniert gut für mich:

DateTimeTimeZone newStart = new DateTimeTimeZone(); 
newStart.DateTime= "2016-08-06T19:00:00.0000000"; 
newStart.TimeZone = "Asia/Kolkata"; 

DateTimeTimeZone newEnd = new DateTimeTimeZone(); 
newEnd.DateTime = "2016-08-06T19:30:00.0000000"; 
newEnd.TimeZone = "Asia/Kolkata";