Exemplo n.º 1
0
 protected Inconsistency(RoleType owner, string description, CalendarInconsistencyFlag flag, CalendarValidationContext context) : this()
 {
     this.Owner               = owner;
     this.Description         = description;
     this.Flag                = flag;
     this.OwnerIsGroupMailbox = context.IsRoleGroupMailbox(this.Owner);
 }
        private void FailCheck(ConsistencyCheckResult result, CalendarInconsistencyFlag inconsistencyFlag, string propertyName, object expectedValue, object actualValue, ClientIntentFlags?inconsistencyIntent)
        {
            PropertyInconsistency propertyInconsistency = PropertyInconsistency.CreateInstance(RoleType.Attendee, inconsistencyFlag, propertyName, expectedValue, actualValue, base.Context);

            propertyInconsistency.Intent = inconsistencyIntent;
            this.FailCheck(result, propertyInconsistency);
        }
 private void AddRepairFlags(CalendarInconsistencyFlag flag)
 {
     if (!this.ContainsRepairFlag(flag))
     {
         this.repairFlags.Add(flag);
         this.RepairMode = CalendarRepairType.RepairAndValidate;
     }
 }
        internal override RumInfo CreateRumInfo(CalendarValidationContext context, IList <Attendee> attendees)
        {
            CalendarInconsistencyFlag flag = base.Flag;

            if (flag == CalendarInconsistencyFlag.ExtraOccurrenceDeletion)
            {
                return(MissingAttendeeItemRumInfo.CreateOccurrenceInstance(this.OriginalStartDate, attendees, base.Flag));
            }
            return(base.CreateRumInfo(context, attendees));
        }
 public void InitializeWithDefaults()
 {
     this.daysInWindowForward  = 45;
     this.daysInWindowBackward = 45;
     foreach (object obj in Enum.GetValues(typeof(CalendarInconsistencyFlag)))
     {
         CalendarInconsistencyFlag flag = (CalendarInconsistencyFlag)obj;
         this.AddRepairFlags(flag);
     }
 }
Exemplo n.º 6
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));
        }
        internal override RumInfo CreateRumInfo(CalendarValidationContext context, IList <Attendee> attendees)
        {
            CalendarInconsistencyFlag flag = base.Flag;

            if (flag != CalendarInconsistencyFlag.Cancellation)
            {
                return(base.CreateRumInfo(context, attendees));
            }
            bool flag2;

            if (!bool.TryParse(this.ExpectedValue, out flag2))
            {
                throw new ArgumentException("Expected value for cancellation inconsistency should be Boolean.", "inconsistency.ExpectedValue");
            }
            if (flag2)
            {
                return(CancellationRumInfo.CreateMasterInstance(attendees));
            }
            return(UpdateRumInfo.CreateMasterInstance(attendees, base.Flag));
        }
Exemplo n.º 8
0
        private void ProjectInconsistencyFlag(MessageItem message, List <string> projection, HashSet <CalendarInconsistencyGroup> projectedGroups, CalendarInconsistencyFlag flag)
        {
            switch (flag)
            {
            default:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.None, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.TimeOverlap:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.StartTime, projectedGroups, projection);
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.EndTime, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.StartTime:
            case CalendarInconsistencyFlag.StartTimeZone:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.StartTime, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.EndTime:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.EndTime, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.RecurringTimeZone:
            case CalendarInconsistencyFlag.RecurrenceBlob:
            case CalendarInconsistencyFlag.RecurrenceAnomaly:
            case CalendarInconsistencyFlag.RecurringException:
            case CalendarInconsistencyFlag.ModifiedOccurrenceMatch:
            case CalendarInconsistencyFlag.MissingOccurrenceDeletion:
            case CalendarInconsistencyFlag.ExtraOccurrenceDeletion:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.Recurrence, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.Location:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.Location, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.Cancellation:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.Cancellation, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.MissingItem:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.MissingItem, projectedGroups, projection);
                return;

            case CalendarInconsistencyFlag.DuplicatedItem:
                this.ProjectInconsistencyGroup(message, CalendarInconsistencyGroup.Duplicate, projectedGroups, projection);
                return;
            }
        }
 private RecurrenceInconsistency(RoleType owner, string description, CalendarInconsistencyFlag flag, RecurrenceInconsistencyType recurrenceInconsistencyType, ExDateTime origstartDate, CalendarValidationContext context) : base(owner, description, flag, context)
 {
     this.InconsistencyType = recurrenceInconsistencyType;
     this.OriginalStartDate = origstartDate;
 }
Exemplo n.º 10
0
 public static MissingAttendeeItemRumInfo CreateMasterInstance(IList <Attendee> attendees, CalendarInconsistencyFlag inconsistencyFlag, int?deletedItemVersion)
 {
     return(new MissingAttendeeItemRumInfo(null, attendees, inconsistencyFlag, deletedItemVersion));
 }
 private void FailCheck(ConsistencyCheckResult result, CalendarInconsistencyFlag inconsistencyFlag, string propertyName, object expectedValue, object actualValue)
 {
     this.FailCheck(result, inconsistencyFlag, propertyName, expectedValue, actualValue, null);
 }
        private bool MatchesOrganizerItem(ref CalendarItemBase organizerCalendarItem, out CalendarInconsistencyFlag inconsistencyFlag)
        {
            inconsistencyFlag = CalendarInconsistencyFlag.None;
            int appointmentSequenceNumber = organizerCalendarItem.AppointmentSequenceNumber;
            int valueOrDefault            = base.GetValueOrDefault <int>(CalendarItemBaseSchema.AppointmentSequenceNumber, -1);

            if (valueOrDefault < appointmentSequenceNumber)
            {
                inconsistencyFlag = CalendarInconsistencyFlag.VersionInfo;
                return(false);
            }
            ExDateTime startTime       = organizerCalendarItem.StartTime;
            ExDateTime endTime         = organizerCalendarItem.EndTime;
            ExDateTime valueOrDefault2 = base.GetValueOrDefault <ExDateTime>(InternalSchema.StartTime);
            ExDateTime valueOrDefault3 = base.GetValueOrDefault <ExDateTime>(InternalSchema.EndTime);

            if (!startTime.Equals(valueOrDefault2))
            {
                inconsistencyFlag = CalendarInconsistencyFlag.StartTime;
                return(false);
            }
            if (!endTime.Equals(valueOrDefault3))
            {
                inconsistencyFlag = CalendarInconsistencyFlag.EndTime;
                return(false);
            }
            string location        = organizerCalendarItem.Location;
            string valueOrDefault4 = base.GetValueOrDefault <string>(InternalSchema.Location, string.Empty);

            if (!string.Equals(location, valueOrDefault4, StringComparison.OrdinalIgnoreCase))
            {
                inconsistencyFlag = CalendarInconsistencyFlag.Location;
                return(false);
            }
            return(true);
        }
Exemplo n.º 13
0
 public static UpdateRumInfo CreateOccurrenceInstance(ExDateTime originalStartTime, IList <Attendee> attendees, CalendarInconsistencyFlag inconsistencyFlag)
 {
     return(new UpdateRumInfo(new ExDateTime?(originalStartTime), attendees, inconsistencyFlag));
 }
Exemplo n.º 14
0
 public static UpdateRumInfo CreateMasterInstance(IList <Attendee> attendees, CalendarInconsistencyFlag inconsistencyFlag)
 {
     return(new UpdateRumInfo(null, attendees, inconsistencyFlag));
 }
Exemplo n.º 15
0
        protected UpdateRumInfo(ExDateTime?originalStartTime, IList <Attendee> attendees, CalendarInconsistencyFlag inconsistencyFlag) : base(RumType.Update, originalStartTime, attendees)
        {
            EnumValidator <CalendarInconsistencyFlag> .ThrowIfInvalid(inconsistencyFlag, "inconsistencyFlag");

            this.InconsistencyFlagList = new List <CalendarInconsistencyFlag>(1)
            {
                inconsistencyFlag
            };
        }
Exemplo n.º 16
0
 internal static Inconsistency CreateInstance(RoleType owner, string description, CalendarInconsistencyFlag flag, CalendarValidationContext context)
 {
     return(new Inconsistency(owner, description, flag, context));
 }
Exemplo n.º 17
0
 private MissingAttendeeItemRumInfo(ExDateTime?originalStartTime, IList <Attendee> attendees, CalendarInconsistencyFlag inconsistencyFlag, int?deletedItemVersion) : base(originalStartTime, attendees, inconsistencyFlag)
 {
     this.DeletedItemVersion = deletedItemVersion;
 }
Exemplo n.º 18
0
 internal bool ContainsRepairFlag(CalendarInconsistencyFlag flag)
 {
     return(flag == CalendarInconsistencyFlag.None || this.repairFlags.Contains(flag));
 }
Exemplo n.º 19
0
 public new static MissingAttendeeItemRumInfo CreateOccurrenceInstance(ExDateTime originalStartTime, IList <Attendee> attendees, CalendarInconsistencyFlag inconsistencyFlag)
 {
     return(new MissingAttendeeItemRumInfo(new ExDateTime?(originalStartTime), attendees, inconsistencyFlag, null));
 }
Exemplo n.º 20
0
 private PropertyInconsistency(RoleType owner, CalendarInconsistencyFlag flag, string propertyName, object expectedValue, object actualValue, CalendarValidationContext context) : base(owner, string.Empty, flag, context)
 {
     this.PropertyName  = propertyName;
     this.ExpectedValue = ((expectedValue == null) ? "<NULL>" : expectedValue.ToString());
     this.ActualValue   = ((actualValue == null) ? "<NULL>" : actualValue.ToString());
 }
 internal static RecurrenceInconsistency CreateInstance(RoleType owner, string description, CalendarInconsistencyFlag flag, RecurrenceInconsistencyType recurrenceInconsistencyType, ExDateTime origstartDate, CalendarValidationContext context)
 {
     return(new RecurrenceInconsistency(owner, description, flag, recurrenceInconsistencyType, origstartDate, context));
 }
Exemplo n.º 22
0
 internal static PropertyInconsistency CreateInstance(RoleType owner, CalendarInconsistencyFlag flag, string propertyName, object expectedValue, object actualValue, CalendarValidationContext context)
 {
     return(new PropertyInconsistency(owner, flag, propertyName, expectedValue, actualValue, context));
 }
Exemplo n.º 23
0
 private void FailCheck(ConsistencyCheckResult result, RoleType inconsistentRole, CalendarInconsistencyFlag flag, string fullDescription)
 {
     result.Status = CheckStatusType.Failed;
     result.AddInconsistency(base.Context, Inconsistency.CreateInstance(inconsistentRole, fullDescription, flag, base.Context));
 }
Exemplo n.º 24
0
 protected MissingItemInconsistency(RoleType owner, string description, CalendarInconsistencyFlag flag, CalendarValidationContext context) : base(owner, description, flag, context)
 {
 }