internal override LocalizedString GenerateWhen(bool addTimeZoneInfo)
        {
            if (!(base.Pattern is RegeneratingPattern))
            {
                return(base.GenerateWhen(addTimeZoneInfo));
            }
            ExDateTime      exDateTime      = this.ReadExTimeZone.ConvertDateTime(base.Range.StartDate);
            LocalizedString localizedString = ClientStrings.WhenRecurringNoEndDateNoTimeInDay(base.Pattern.When(), exDateTime);

            if (!(base.Range is NoEndRecurrenceRange))
            {
                if (!(base.Range is NumberedRecurrenceRange))
                {
                    ExTraceGlobals.TaskTracer.TraceError <RecurrencePattern, RecurrenceRange>((long)this.GetHashCode(), "TaskRecurrence::GenerateWhen. The recurrence range is not allowed in this pattern. Pattern = {0}, Range = {1}.", base.Pattern, base.Range);
                    throw new CorruptDataException(ServerStrings.TaskRecurrenceNotSupported(base.Pattern.ToString(), base.Range.ToString()));
                }
                localizedString = ClientStrings.JointStrings(localizedString, ClientStrings.WhenNMoreOccurrences(((NumberedRecurrenceRange)base.Range).NumberOfOccurrences));
            }
            return(localizedString);
        }