예제 #1
0
 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 virtual RumInfo CreateRumInfo(CalendarValidationContext context, IList <Attendee> attendees)
        {
            switch (this.Flag)
            {
            case CalendarInconsistencyFlag.None:
            case CalendarInconsistencyFlag.StoreObjectValidation:
            case CalendarInconsistencyFlag.StorageException:
            case CalendarInconsistencyFlag.UserNotFound:
            case CalendarInconsistencyFlag.LegacyUser:
            case CalendarInconsistencyFlag.LargeDL:
            case CalendarInconsistencyFlag.RecurrenceAnomaly:
            case CalendarInconsistencyFlag.RecurringException:
            case CalendarInconsistencyFlag.ModifiedOccurrenceMatch:
            case CalendarInconsistencyFlag.DuplicatedItem:
            case CalendarInconsistencyFlag.MissingCvs:
                return(NullOpRumInfo.CreateInstance());

            case CalendarInconsistencyFlag.VersionInfo:
            case CalendarInconsistencyFlag.TimeOverlap:
            case CalendarInconsistencyFlag.StartTime:
            case CalendarInconsistencyFlag.EndTime:
            case CalendarInconsistencyFlag.StartTimeZone:
            case CalendarInconsistencyFlag.RecurringTimeZone:
            case CalendarInconsistencyFlag.Location:
            case CalendarInconsistencyFlag.RecurrenceBlob:
            case CalendarInconsistencyFlag.MissingOccurrenceDeletion:
                return(UpdateRumInfo.CreateMasterInstance(attendees, this.Flag));
            }
            throw new NotImplementedException(string.Format("Unrecognized inconsistency: {0}", this.Flag));
        }
예제 #3
0
        internal static RepairSteps CreateInstance()
        {
            RepairSteps repairSteps = new RepairSteps();

            repairSteps.Initialize(NullOpRumInfo.CreateInstance(), new Dictionary <ExDateTime, RumInfo>());
            return(repairSteps);
        }
        internal override RumInfo CreateRumInfo(CalendarValidationContext context, IList <Attendee> attendees)
        {
            if (this.AttendeeReplyTime.Equals(ExDateTime.MinValue))
            {
                return(NullOpRumInfo.CreateInstance());
            }
            switch (this.ExpectedResponse)
            {
            default:
                return(NullOpRumInfo.CreateInstance());

            case ResponseType.Tentative:
            case ResponseType.Accept:
            case ResponseType.Decline:
                return(ResponseRumInfo.CreateMasterInstance());
            }
        }
예제 #5
0
        internal override RumInfo CreateRumInfo(CalendarValidationContext context, IList <Attendee> attendees)
        {
            CalendarInconsistencyFlag flag = base.Flag;

            if (flag != CalendarInconsistencyFlag.OrphanedMeeting)
            {
                return(MissingAttendeeItemRumInfo.CreateMasterInstance(attendees, base.Flag, this.DeletedItemVersion));
            }
            if (context.OppositeRole == RoleType.Organizer && !context.OppositeRoleOrganizerIsValid)
            {
                return(NullOpRumInfo.CreateInstance());
            }
            MeetingInquiryAction predictedRepairAction;
            bool wouldRepair = context.CalendarInstance.WouldTryToRepairIfMissing(context, out predictedRepairAction);

            return(AttendeeInquiryRumInfo.CreateMasterInstance(wouldRepair, predictedRepairAction));
        }