示例#1
0
 private void EnforceLevelOfDetailsOnItem(CalendarItemBase calendarItem, LevelOfDetails levelOfDetails)
 {
     ItemSynchronizer.Tracer.TraceDebug <CalendarItemSynchronizer, VersionedId>((long)this.GetHashCode(), "{0}: Enforcing level of details on item {1}.", this, calendarItem.Id);
     using (TextWriter textWriter = calendarItem.Body.OpenTextWriter(calendarItem.Body.Format))
     {
         textWriter.Write(string.Empty);
     }
     if (levelOfDetails == LevelOfDetails.Availability)
     {
         calendarItem.Subject     = this.appointmentTranslator.ConvertFreeBusyToTitle(calendarItem.FreeBusyStatus);
         calendarItem.Location    = string.Empty;
         calendarItem.Sensitivity = Sensitivity.Normal;
     }
 }
示例#2
0
 public virtual void EnforceLevelOfDetails(MailboxSession mailboxSession, StoreId itemId, LevelOfDetails levelOfDetails)
 {
 }
示例#3
0
 public SharingLevelOfDetails(LevelOfDetails levelOfDetails)
 {
     this.currentLevel = levelOfDetails;
 }
示例#4
0
 public override void EnforceLevelOfDetails(MailboxSession mailboxSession, StoreId itemId, LevelOfDetails levelOfDetails)
 {
     using (CalendarItem calendarItem = CalendarItem.Bind(mailboxSession, itemId))
     {
         this.EnforceLevelOfDetailsOnItem(calendarItem, levelOfDetails);
         if (calendarItem.Recurrence != null)
         {
             IList <OccurrenceInfo> modifiedOccurrences = calendarItem.Recurrence.GetModifiedOccurrences();
             ItemSynchronizer.Tracer.TraceDebug <CalendarItemSynchronizer, int, StoreId>((long)this.GetHashCode(), "{0}: Found {1} modified occurrences for item {2}.", this, modifiedOccurrences.Count, itemId);
             foreach (OccurrenceInfo occurrenceInfo in modifiedOccurrences)
             {
                 ExDateTime originalStartTime = occurrenceInfo.OriginalStartTime;
                 if (!calendarItem.Recurrence.IsOccurrenceDeleted(originalStartTime) && calendarItem.Recurrence.IsValidOccurrenceId(originalStartTime))
                 {
                     using (CalendarItemOccurrence calendarItemOccurrence = calendarItem.OpenOccurrenceByOriginalStartTime(originalStartTime, new PropertyDefinition[0]))
                     {
                         this.EnforceLevelOfDetailsOnItem(calendarItemOccurrence, levelOfDetails);
                         calendarItemOccurrence.Save(SaveMode.NoConflictResolution);
                         continue;
                     }
                 }
                 ItemSynchronizer.Tracer.TraceDebug <CalendarItemSynchronizer, ExDateTime>((long)this.GetHashCode(), "{0}: Exception {1} is deleted or invalid. Skipping enforcement of level of details.", this, originalStartTime);
             }
         }
         calendarItem.Save(SaveMode.NoConflictResolution);
     }
 }
示例#5
0
 public void SaveLevelOfDetails(LevelOfDetails levelOfDetails)
 {
     this.folder[SharingSchema.ExternalSharingLevelOfDetails] = levelOfDetails;
     this.folder.Save();
     this.folder.Load();
 }
示例#6
0
 public IProvideGenericError UseDetailedErrors()
 {
     _errorLevelOfDetail = LevelOfDetails.DetailedErrors;
     return(this);
 }
示例#7
0
 public IProvideGenericError UseStandardMessage()
 {
     _errorLevelOfDetail = LevelOfDetails.StandardMessage;
     return(this);
 }