如何从 asp 应用程序更新 Google 日历事件?

问题描述 投票:0回答:1

我想将事件的主键插入 Google 日历,然后在

EventQuery
调用更新该事件后检索它。

我在

Evententry
类中没有找到任何属性来分配主键以及稍后检索以更新该事件。

asp.net .net google-calendar-api
1个回答
0
投票

可以通过以下方法使用 ExtendedProperty 来完成

1.Assign an ID (same as you set in your DB) to each event you add through
  ExtendedProperty . 
2.When updating / deleting you pass the ID and use Query to fetch it for you
3.If the event is found you can delete / update the specific event

Google.GData.Calendar.EventEntry Entry = new Google.GData.Calendar.EventEntry();

//create the ExtendedProperty and add the EventID in the new event object, 
//so it can be deleted / updated later
ExtendedProperty oExtendedProperty = new ExtendedProperty();
oExtendedProperty.Name = "EventID";
oExtendedProperty.Value = GoogleAppointmentObj.EventID;
Entry.ExtensionElements.Add(oExtendedProperty);

string ThisFeedUri = "http://www.google.com/calendar/feeds/" + CalendarID 
+ "/private/full";
Uri postUri = new Uri(ThisFeedUri);

//create an event query object and attach the EventID to it in Extraparameters
EventQuery Query = new EventQuery(ThisFeedUri);
Query.ExtraParameters = "extq=[EventID:" + GoogleAppointmentObj.EventID + "]";
Query.Uri = postUri;

//Find the event with the specific ID
EventFeed calFeed = CalService.Query(Query);

//if search contains result then delete
if (calFeed != null && calFeed.Entries.Count > 0)
{
   foreach (EventEntry SearchedEntry in calFeed.Entries)
   {
      SearchedEntry.Delete();
      //To update comment the code above and uncomment the code below 
      //CalService.Update(SearchedEntry);
      break;
   }
}
else
{
    InsertedEntry = CalService.Insert(postUri, Entry);
}
© www.soinside.com 2019 - 2024. All rights reserved.