From cad770bf76fcbe37374e98486cce41b52a20fe04 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Wed, 19 Sep 2012 12:22:07 -0400 Subject: [PATCH] Moved PidTagException* properties to the right place --- OpenChange/MAPIStoreAppointmentWrapper.m | 53 ------------- OpenChange/MAPIStoreCalendarAttachment.h | 3 + OpenChange/MAPIStoreCalendarAttachment.m | 96 +++++++++++++++++++++++- 3 files changed, 98 insertions(+), 54 deletions(-) diff --git a/OpenChange/MAPIStoreAppointmentWrapper.m b/OpenChange/MAPIStoreAppointmentWrapper.m index 096d7aeed..1116435ee 100644 --- a/OpenChange/MAPIStoreAppointmentWrapper.m +++ b/OpenChange/MAPIStoreAppointmentWrapper.m @@ -807,33 +807,6 @@ static NSCharacterSet *hexCharacterSet = nil; return rc; } -- (int) getPidTagExceptionStartTime: (void **) data - inMemCtx: (TALLOC_CTX *) localMemCtx -{ - enum mapistore_error rc; - NSCalendarDate *dateValue; - NSInteger offset; - - if ([event recurrenceId] != nil) - { - dateValue = [event startDate]; - [dateValue setTimeZone: timeZone]; - if (![event isAllDay]) - { - offset = [timeZone secondsFromGMTForDate: dateValue]; - dateValue = [dateValue dateByAddingYears: 0 months: 0 days: 0 - hours: 0 minutes: 0 - seconds: offset]; - } - *data = [dateValue asFileTimeInMemCtx: localMemCtx]; - rc = MAPISTORE_SUCCESS; - } - else - rc = MAPISTORE_ERR_NOT_FOUND; - - return rc; -} - - (int) getPidLidAppointmentEndWhole: (void **) data inMemCtx: (TALLOC_CTX *) memCtx { @@ -934,32 +907,6 @@ static NSCharacterSet *hexCharacterSet = nil; return rc; } -- (int) getPidTagExceptionEndTime: (void **) data - inMemCtx: (TALLOC_CTX *) localMemCtx -{ - enum mapistore_error rc; - NSCalendarDate *dateValue; - NSInteger offset; - - if ([event recurrenceId] != nil) - { - dateValue = [event startDate]; - [dateValue setTimeZone: timeZone]; - offset = [event durationAsTimeInterval]; - if (![event isAllDay]) - offset += [timeZone secondsFromGMTForDate: dateValue]; - dateValue = [dateValue dateByAddingYears: 0 months: 0 days: 0 - hours: 0 minutes: 0 - seconds: offset]; - *data = [dateValue asFileTimeInMemCtx: localMemCtx]; - rc = MAPISTORE_SUCCESS; - } - else - rc = MAPISTORE_ERR_NOT_FOUND; - - return rc; -} - - (int) _getEntryIdFromCN: (NSString *) cn andEmail: (NSString *) email inData: (void **) data diff --git a/OpenChange/MAPIStoreCalendarAttachment.h b/OpenChange/MAPIStoreCalendarAttachment.h index 9dce8d17e..b0a35d6b2 100644 --- a/OpenChange/MAPIStoreCalendarAttachment.h +++ b/OpenChange/MAPIStoreCalendarAttachment.h @@ -25,11 +25,14 @@ #import "MAPIStoreAttachment.h" +@class NSTimeZone; + @class iCalEvent; @interface MAPIStoreCalendarAttachment : MAPIStoreAttachment { iCalEvent *event; + NSTimeZone *timeZone; } - (void) setEvent: (iCalEvent *) newEvent; diff --git a/OpenChange/MAPIStoreCalendarAttachment.m b/OpenChange/MAPIStoreCalendarAttachment.m index e4307f1f3..e101e735b 100644 --- a/OpenChange/MAPIStoreCalendarAttachment.m +++ b/OpenChange/MAPIStoreCalendarAttachment.m @@ -52,6 +52,20 @@ if ((self = [super init])) { event = nil; + timeZone = nil; + } + + return self; +} + +- (id) initInContainer: (MAPIStoreObject *) newContainer +{ + MAPIStoreUserContext *userContext; + + if ((self = [super initInContainer: newContainer])) + { + userContext = [newContainer userContext]; + ASSIGN (timeZone, [userContext timeZone]); } return self; @@ -60,6 +74,7 @@ - (void) dealloc { [event release]; + [timeZone release]; [super dealloc]; } @@ -135,7 +150,86 @@ return [self getNo: data inMemCtx: memCtx]; } -// case PidTagExceptionReplaceTime: +- (int) getPidTagExceptionReplaceTime: (void **) data + inMemCtx: (TALLOC_CTX *) memCtx +{ + enum mapistore_error rc; + NSCalendarDate *dateValue; + NSInteger offset; + + dateValue = [event recurrenceId]; + if (dateValue) + { + rc = MAPISTORE_SUCCESS; + + if ([event isAllDay]) + { + offset = -[timeZone secondsFromGMTForDate: dateValue]; + dateValue = [dateValue dateByAddingYears: 0 months: 0 days: 0 + hours: 0 minutes: 0 + seconds: offset]; + } + [dateValue setTimeZone: utcTZ]; + *data = [dateValue asFileTimeInMemCtx: memCtx]; + } + else + rc = MAPISTORE_ERR_NOT_FOUND; + + return rc; +} + +- (int) getPidTagExceptionStartTime: (void **) data + inMemCtx: (TALLOC_CTX *) localMemCtx +{ + enum mapistore_error rc; + NSCalendarDate *dateValue; + NSInteger offset; + + if ([event recurrenceId] != nil) + { + dateValue = [event startDate]; + [dateValue setTimeZone: timeZone]; + if (![event isAllDay]) + { + offset = [timeZone secondsFromGMTForDate: dateValue]; + dateValue = [dateValue dateByAddingYears: 0 months: 0 days: 0 + hours: 0 minutes: 0 + seconds: offset]; + } + *data = [dateValue asFileTimeInMemCtx: localMemCtx]; + rc = MAPISTORE_SUCCESS; + } + else + rc = MAPISTORE_ERR_NOT_FOUND; + + return rc; +} + +- (int) getPidTagExceptionEndTime: (void **) data + inMemCtx: (TALLOC_CTX *) localMemCtx +{ + enum mapistore_error rc; + NSCalendarDate *dateValue; + NSInteger offset; + + if ([event recurrenceId] != nil) + { + dateValue = [event startDate]; + [dateValue setTimeZone: timeZone]; + offset = [event durationAsTimeInterval]; + if (![event isAllDay]) + offset += [timeZone secondsFromGMTForDate: dateValue]; + dateValue = [dateValue dateByAddingYears: 0 months: 0 days: 0 + hours: 0 minutes: 0 + seconds: offset]; + *data = [dateValue asFileTimeInMemCtx: localMemCtx]; + rc = MAPISTORE_SUCCESS; + } + else + rc = MAPISTORE_ERR_NOT_FOUND; + + return rc; +} /* subclasses */ - (MAPIStoreCalendarEmbeddedMessage *) openEmbeddedMessage