2011-05-11 3 views
0

j'ai cette fonctioncalendrier google api asp.net C# supprimer l'événement

private static void DeleteEvent(CalendarService service, string pTitle,DateTime pDate) 
    { 
     FeedQuery query = new FeedQuery(); 
     query.Uri = new Uri("http://www.google.com/calendar/feeds/default/private/full"); 
     AtomFeed calFeed = service.Query(query); 
     foreach (AtomEntry entry in calFeed.Entries) 
     { 
      if (pTitle.Equals(entry.Title.Text)) 
      { 
       entry.Delete(); break; 
      } 
     } 
    } 

comment je peux supprimer un événement par titre et la date?

Répondre

0

Ceux-ci pourraient aider:

http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html#DeletingEvents
http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html#RetrievingEvents

Je suppose que quelque chose comme ce qui suit pourrait fonctionner:

EventQuery query = new EventQuery("https://www.google.com/calendar/feeds/default/private/full"); 
query.StartDate = ...; 
query.EndDate = ...; 
EventFeed feed = service.Query(query); 
foreach (var entry in feed.Entries) 
{ 
    if (pTitle.Equals(entry.Title.Text)) 
    { 
     entry.Delete(); break; 
    } 
} 
0

Bien que la solution ci-dessus fonctionne, mais je suggère une autre approche . Au lieu de parcourir tous les événements à chaque fois et de les supprimer si vous les trouvez, pourquoi ne pas demander à Google de trouver l'événement spécifique pour vous. Il peut être fait en utilisant ExtendedProperty en utilisant l'approche ci-dessous

  1. Assigner un ID (comme défini dans votre base de données) à chaque événement que vous ajoutez.
  2. Lors de la suppression
  3. vous passez l'ID à supprimer et utiliser la requête pour le chercher pour vous
  4. Supprimer l'événement spécifique

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(); 
     break; 
    } 

} 
Questions connexes