Пример #1
0
        /// <summary>Overloaded. Converts the given value object to the specified type.</summary>
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (destinationType == typeof(string))
            {
                RecurrenceRule rrule = value as RecurrenceRule;
                if (rrule != null)
                {
                    return(rrule.ToString());
                }
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }
        public void FormatWeeklySeries()
        {
            var rule = new RecurrenceRule
            {
                Type       = RecurrenceType.Weekly,
                Interval   = 1,
                DaysOfWeek = new List <int>
                {
                    (int)DayOfWeek.Monday,
                    (int)DayOfWeek.Tuesday,
                    (int)DayOfWeek.Wednesday,
                    (int)DayOfWeek.Thursday,
                    (int)DayOfWeek.Friday
                }
            };

            Assert.AreEqual("week_1___1,2,3,4,5#no", rule.ToString());
        }
Пример #3
0
        private void ProcessRecurringCalendarItem(Appointment targetAppointment, CalendarItemType calendarItem, RadScheduler owner, ICollection <Appointment> instances)
        {
            targetAppointment.RecurrenceState = RecurrenceState.Master;

            RecurrencePattern pattern = calendarItem.Recurrence.Item.ConvertToRecurrencePattern();

            RecurrenceRange range = calendarItem.Recurrence.Item1.ConvertToRecurrenceRange();

            range.EventDuration = targetAppointment.Duration;
            range.Start         = targetAppointment.Start;

            RecurrenceRule rrule = RecurrenceRule.FromPatternAndRange(pattern, range);

            if (calendarItem.ModifiedOccurrences != null)
            {
                foreach (CalendarItemType modifiedOccurrence in GetModifiedOccurrences(calendarItem))
                {
                    foreach (Appointment aptException in CreateAppointmentsFromCalendarItem(owner, modifiedOccurrence))
                    {
                        aptException.RecurrenceState    = RecurrenceState.Exception;
                        aptException.RecurrenceParentID = calendarItem.ItemId.Id;

                        instances.Add(aptException);
                    }

                    rrule.Exceptions.Add(modifiedOccurrence.OriginalStart);
                }
            }

            if (calendarItem.DeletedOccurrences != null)
            {
                foreach (DeletedOccurrenceInfoType occurenceInfo in calendarItem.DeletedOccurrences)
                {
                    rrule.Exceptions.Add(occurenceInfo.Start);
                }
            }

            targetAppointment.RecurrenceRule = rrule.ToString();
        }