コード例 #1
0
ファイル: RumFactory.cs プロジェクト: YHZX2013/exchange_diff
 internal RumInfo CreateRumInfo(CalendarValidationContext context, Inconsistency inconsistency)
 {
     this.CheckInitialized();
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     if (inconsistency == null)
     {
         throw new ArgumentNullException("inconsistency");
     }
     if (this.ShouldSendRum(context, inconsistency))
     {
         IList <Attendee> list = new List <Attendee>(1);
         if (context.BaseRole == RoleType.Organizer && context.Attendee != null)
         {
             if (context.Attendee.Attendee == null)
             {
                 context.Attendee.Attendee = context.OrganizerItem.AttendeeCollection.Add(context.Attendee.Participant, AttendeeType.Required, null, null, false);
             }
             list.Add(context.Attendee.Attendee);
         }
         RumInfo rumInfo = inconsistency.CreateRumInfo(context, list);
         if (!rumInfo.IsNullOp && rumInfo is OrganizerRumInfo && context.AttendeeItem != null)
         {
             ((OrganizerRumInfo)rumInfo).AttendeeRequiredSequenceNumber = context.AttendeeItem.AppointmentSequenceNumber;
         }
         return(rumInfo);
     }
     return(NullOpRumInfo.CreateInstance());
 }
コード例 #2
0
        internal bool SendRums(CalendarItemBase baseItem, ref Dictionary <GlobalObjectId, List <Attendee> > organizerRumsSent)
        {
            bool flag = false;

            if (this.MasterRum.IsNullOp)
            {
                using (Dictionary <ExDateTime, RumInfo> .ValueCollection.Enumerator enumerator = this.OccurrenceRums.Values.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        RumInfo info = enumerator.Current;
                        if (RumAgent.Instance.SendRums(info, RumFactory.Instance.Policy.CopyRumsToSentItems, baseItem, ref organizerRumsSent))
                        {
                            flag = true;
                        }
                    }
                    return(flag);
                }
            }
            flag = RumAgent.Instance.SendRums(this.MasterRum, RumFactory.Instance.Policy.CopyRumsToSentItems, baseItem, ref organizerRumsSent);
            if (flag && this.MasterRum.Type == RumType.Inquiry)
            {
                this.InquiredMeeting = true;
            }
            return(flag);
        }
コード例 #3
0
 // Token: 0x06000DE2 RID: 3554 RVA: 0x000541B4 File Offset: 0x000523B4
 internal static CalendarRepairLogRumEntry CreateInstance(RumInfo repairInfo)
 {
     return(new CalendarRepairLogRumEntry
     {
         repairInfo = repairInfo
     });
 }
コード例 #4
0
        internal void AddInconsistency(CalendarValidationContext context, Inconsistency inconsistency)
        {
            this.Inconsistencies.Add(inconsistency);
            RumInfo rumInfo = RumFactory.Instance.CreateRumInfo(context, inconsistency);

            if (!rumInfo.IsNullOp)
            {
                inconsistency.ShouldFix = true;
                this.RepairInfo.AddStep(rumInfo);
            }
        }
コード例 #5
0
 internal void Merge(RepairSteps stepsToMerge)
 {
     if (stepsToMerge == null)
     {
         throw new ArgumentNullException("stepsToMerge");
     }
     this.MasterRum = RumInfo.Merge(this.MasterRum, stepsToMerge.MasterRum);
     foreach (RumInfo rum in stepsToMerge.OccurrenceRums.Values)
     {
         this.AddOccurrenceRum(rum);
     }
 }
コード例 #6
0
 private void AddOccurrenceRum(RumInfo rum)
 {
     if (this.MasterRum.IsNullOp)
     {
         ExDateTime value = rum.OccurrenceOriginalStartTime.Value;
         if (this.OccurrenceRums.ContainsKey(value))
         {
             this.OccurrenceRums[value] = RumInfo.Merge(this.OccurrenceRums[value], rum);
             return;
         }
         this.OccurrenceRums.Add(rum.OccurrenceOriginalStartTime.Value, rum);
     }
 }
コード例 #7
0
 public void ForEachSendableRum(Action <RumInfo> action)
 {
     if (this.MasterRum.IsNullOp)
     {
         using (Dictionary <ExDateTime, RumInfo> .ValueCollection.Enumerator enumerator = this.OccurrenceRums.Values.GetEnumerator())
         {
             while (enumerator.MoveNext())
             {
                 RumInfo obj = enumerator.Current;
                 action(obj);
             }
             return;
         }
     }
     action(this.MasterRum);
 }
コード例 #8
0
 internal void AddStep(RumInfo rum)
 {
     if (rum == null)
     {
         throw new ArgumentNullException("rum", "RUM cannot be null.");
     }
     if (!rum.IsNullOp)
     {
         if (rum.IsOccurrenceRum)
         {
             this.AddOccurrenceRum(rum);
             return;
         }
         this.MasterRum = RumInfo.Merge(this.MasterRum, rum);
         this.OccurrenceRums.Clear();
     }
 }
コード例 #9
0
        // Token: 0x06000DC0 RID: 3520 RVA: 0x00053464 File Offset: 0x00051664
        private void AddRum(RumInfo rum)
        {
            CalendarRepairLogRumEntry item = CalendarRepairLogRumEntry.CreateInstance(rum);

            this.rumEntries.Add(item);
        }
コード例 #10
0
 private void Initialize(RumInfo master, Dictionary <ExDateTime, RumInfo> occurrences)
 {
     this.MasterRum      = master;
     this.OccurrenceRums = occurrences;
 }