From b35fee8efc206b92d55c30757005df484f764cbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrique=20J=2E=20Hern=C3=A1ndez=20Blasco?= Date: Fri, 16 Jan 2015 01:34:16 +0100 Subject: [PATCH] oc-contacts: Implement Wedding Anniversary As specified by Microsoft using x-ms-anniversary custom vcard element [MS-OXVCARD] Section 2.1.3.9.6 --- OpenChange/MAPIStoreContactsMessage.m | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/OpenChange/MAPIStoreContactsMessage.m b/OpenChange/MAPIStoreContactsMessage.m index 3b35f9c34..c866670f2 100644 --- a/OpenChange/MAPIStoreContactsMessage.m +++ b/OpenChange/MAPIStoreContactsMessage.m @@ -723,6 +723,27 @@ return rc; } +- (int) getPidTagWeddingAnniversary: (void **) data + inMemCtx: (TALLOC_CTX *) memCtx +{ + NSCalendarDate *dateValue; + NSString *stringValue; + int rc = MAPISTORE_SUCCESS; + + stringValue = [[[sogoObject vCard] uniqueChildWithTag: @"x-ms-anniversary"] + flattenedValuesForKey: @""]; + if (stringValue && ! [stringValue isEqualToString: @""]) + { + dateValue = [NSCalendarDate dateWithString: stringValue + calendarFormat: @"%Y-%m-%d"]; + *data = [dateValue asFileTimeInMemCtx: memCtx]; + } + else + rc = MAPISTORE_ERR_NOT_FOUND; + + return rc; +} + // // Decomposed fullname getters // @@ -1173,6 +1194,15 @@ fromProperties: (NSDictionary *) attachmentProps [newCard setBday: [value descriptionWithCalendarFormat: @"%Y-%m-%d"]]; } + /* wedding anniversary */ + value = [properties objectForKey: MAPIPropertyKey(PidTagWeddingAnniversary)]; + if (value) + { + [[newCard uniqueChildWithTag: @"x-ms-anniversary"] + setSingleValue: [value descriptionWithCalendarFormat: @"%Y-%m-%d"] + forKey: @""]; + } + /* photo */ if ([attachmentParts count] > 0) {