[evolution-ews] Handle single occurrences when modifying an instance	of a reccuring meeting
- From: Or Goshen <ogosh src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [evolution-ews] Handle single occurrences when modifying an instance	of a reccuring meeting
 
- Date: Thu, 11 Aug 2011 06:32:05 +0000 (UTC)
 
commit 955fd73127802b590bcb313356018d6c69403ec9
Author: Or Goshen <orx goshen intel com>
Date:   Thu Aug 11 09:30:43 2011 +0300
    Handle single occurrences when modifying an instance of a reccuring meeting
 src/calendar/e-cal-backend-ews.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/src/calendar/e-cal-backend-ews.c b/src/calendar/e-cal-backend-ews.c
index 81d209e..8631630 100644
--- a/src/calendar/e-cal-backend-ews.c
+++ b/src/calendar/e-cal-backend-ews.c
@@ -1677,9 +1677,25 @@ convert_vevent_component_to_updatexml(ESoapMessage *msg, gpointer user_data)
 	const char *org_email_address = NULL, *value = NULL, *old_value = NULL;
 	gboolean has_alarms, has_alarms_old;
 	gint alarm = 0, alarm_old = 0;
+	gchar *recid;
+	GError *error = NULL;
 
-	e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
+	/* Modifying a recurring meeting ? */
+	if (icalcomponent_get_first_property(icalcomp_old, ICAL_RRULE_PROPERTY) != NULL) {
+		/* A single occurrence ? */
+		prop = icalcomponent_get_first_property(icalcomp, ICAL_RECURRENCEID_PROPERTY);
+		if (prop != NULL) {
+			recid = icalproperty_get_value_as_string_r (prop);
+			e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_OCCURRENCEITEM,
+					 modify_data->itemid, modify_data->changekey, e_cal_rid_to_index (recid, icalcomp_old, &error));
+			free (recid);
+		} else {
+			e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_RECURRINGMASTER,
 					 modify_data->itemid, modify_data->changekey, 0);
+		}
+	} else e_ews_message_start_item_change (msg, E_EWS_ITEMCHANGE_TYPE_ITEM,
+					 modify_data->itemid, modify_data->changekey, 0);
+
 	/* subject */
 	value = icalcomponent_get_summary (icalcomp);
 	old_value = icalcomponent_get_summary (icalcomp_old);
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]