示例#1
0
        public virtual ConsumerCalendarSubscription TryGetSubscription(StoreObjectId folderId)
        {
            ConsumerCalendarSubscription result;

            using (ICalendarFolder calendarFolder = this.BindToConsumerCalendarFolder(folderId))
            {
                long consumerCalendarOwnerId = calendarFolder.ConsumerCalendarOwnerId;
                if (consumerCalendarOwnerId == 0L)
                {
                    this.OnLogError("ConsumerCalendarOwnerId is set to zero.");
                    result = null;
                }
                else
                {
                    Guid consumerCalendarGuid = calendarFolder.ConsumerCalendarGuid;
                    if (consumerCalendarGuid == Guid.Empty)
                    {
                        this.OnLogError("ConsumerCalendarGuid is empty.");
                        result = null;
                    }
                    else
                    {
                        result = new ConsumerCalendarSubscription(consumerCalendarOwnerId, consumerCalendarGuid);
                    }
                }
            }
            return(result);
        }
示例#2
0
        public SyncResult Synchronize(StoreObjectId folderId, Deadline deadline)
        {
            this.Tracer.TraceDebug <object, StoreObjectId, string>((long)this.GetHashCode(), "{0}: ConsumerCalendarSharingEngine.Synchronize will try to sync folder {1} for mailbox {2}.", TraceContext.Get(), folderId, this.MailboxSession.DisplayAddress);
            ConsumerCalendarSubscription consumerCalendarSubscription = this.TryGetSubscription(folderId);

            if (consumerCalendarSubscription == null)
            {
                return(SyncResult.SubscriptionLost);
            }
            using (ICalendarItem calendarItem = this.XsoFactory.CreateCalendarItem(this.MailboxSession, folderId))
            {
                calendarItem.StartTime = ExDateTime.Now;
                calendarItem.EndTime   = calendarItem.StartTime.AddSeconds(1.0);
                calendarItem.Subject   = string.Format("Consumer Calendar Sync: OwnerId={0}, CalendarGuid={1}", consumerCalendarSubscription.ConsumerCalendarOwnerId, consumerCalendarSubscription.ConsumerCalendarGuid);
                calendarItem.Save(SaveMode.NoConflictResolutionForceSave);
            }
            return(SyncResult.Completed);
        }