private void UpdateRecurringSetting()

in Office365APIEditor/UI/CreateEventForm.cs [222:337]


        private void UpdateRecurringSetting(DateTime newStartDate)
        {
            // Update reccuring settings

            if (!checkBox_Recurring_IsRecurring.Checked)
            {
                checkBox_Recurring_Pattern_Weekly_Sunday.Checked = false;
                checkBox_Recurring_Pattern_Weekly_Monday.Checked = false;
                checkBox_Recurring_Pattern_Weekly_Tuesday.Checked = false;
                checkBox_Recurring_Pattern_Weekly_Wednesday.Checked = false;
                checkBox_Recurring_Pattern_Weekly_Thursday.Checked = false;
                checkBox_Recurring_Pattern_Weekly_Friday.Checked = false;
                checkBox_Recurring_Pattern_Weekly_Saturday.Checked = false;

                if (comboBox_Recurring_Pattern_Monthly_DayOfTheMonth.Items.Count == 31)
                {
                    comboBox_Recurring_Pattern_Monthly_DayOfTheMonth.SelectedItem = newStartDate.Day;
                }

                var tempDayOfWeekIndex = (int)(Math.Ceiling(newStartDate.Day / 7.0) - 1.0);
                
                if (newStartDate.AddDays(7).Month != newStartDate.Month)
                {
                    tempDayOfWeekIndex = 4; // Last
                }

                if (comboBox_Recurring_Pattern_Monthly_DayOfWeekIndex.Items.Count == 5)
                {
                    comboBox_Recurring_Pattern_Monthly_DayOfWeekIndex.SelectedIndex = tempDayOfWeekIndex;
                }

                checkBox_Recurring_Pattern_Monthly_Sunday.Checked = false;
                checkBox_Recurring_Pattern_Monthly_Monday.Checked = false;
                checkBox_Recurring_Pattern_Monthly_Tuesday.Checked = false;
                checkBox_Recurring_Pattern_Monthly_Wednesday.Checked = false;
                checkBox_Recurring_Pattern_Monthly_Thursday.Checked = false;
                checkBox_Recurring_Pattern_Monthly_Friday.Checked = false;
                checkBox_Recurring_Pattern_Monthly_Saturday.Checked = false;

                if (comboBox_Recurring_Pattern_Yearly_Absolute_Month.Items.Count == 12)
                {
                    comboBox_Recurring_Pattern_Yearly_Absolute_Month.SelectedIndex = newStartDate.Month - 1;
                }

                if (comboBox_Recurring_Pattern_Yearly_Absolute_Day.Items.Count == 31)
                {
                    comboBox_Recurring_Pattern_Yearly_Absolute_Day.SelectedIndex = newStartDate.Day - 1;
                }

                if (comboBox_Recurring_Pattern_Yearly_Relative_DayOfWeekIndex.Items.Count == 5)
                {
                    comboBox_Recurring_Pattern_Yearly_Relative_DayOfWeekIndex.SelectedIndex = tempDayOfWeekIndex;
                }

                if (comboBox_Recurring_Pattern_Yearly_Relative_Month.Items.Count == 12)
                {
                    comboBox_Recurring_Pattern_Yearly_Relative_Month.SelectedIndex = newStartDate.Month - 1;
                }

                checkBox_Recurring_Pattern_Yearly_Sunday.Checked = false;
                checkBox_Recurring_Pattern_Yearly_Monday.Checked = false;
                checkBox_Recurring_Pattern_Yearly_Tuesday.Checked = false;
                checkBox_Recurring_Pattern_Yearly_Wednesday.Checked = false;
                checkBox_Recurring_Pattern_Yearly_Thursday.Checked = false;
                checkBox_Recurring_Pattern_Yearly_Friday.Checked = false;
                checkBox_Recurring_Pattern_Yearly_Saturday.Checked = false;

                switch (newStartDate.DayOfWeek)
                {
                    case DayOfWeek.Sunday:
                        checkBox_Recurring_Pattern_Weekly_Sunday.Checked = true;
                        checkBox_Recurring_Pattern_Monthly_Sunday.Checked = true;
                        checkBox_Recurring_Pattern_Yearly_Sunday.Checked = true;
                        break;
                    case DayOfWeek.Monday:
                        checkBox_Recurring_Pattern_Weekly_Monday.Checked = true;
                        checkBox_Recurring_Pattern_Monthly_Monday.Checked = true;
                        checkBox_Recurring_Pattern_Yearly_Monday.Checked = true;
                        break;
                    case DayOfWeek.Tuesday:
                        checkBox_Recurring_Pattern_Weekly_Tuesday.Checked = true;
                        checkBox_Recurring_Pattern_Monthly_Tuesday.Checked = true;
                        checkBox_Recurring_Pattern_Yearly_Tuesday.Checked = true;
                        break;
                    case DayOfWeek.Wednesday:
                        checkBox_Recurring_Pattern_Weekly_Wednesday.Checked = true;
                        checkBox_Recurring_Pattern_Monthly_Wednesday.Checked = true;
                        checkBox_Recurring_Pattern_Yearly_Wednesday.Checked = true;
                        break;
                    case DayOfWeek.Thursday:
                        checkBox_Recurring_Pattern_Weekly_Thursday.Checked = true;
                        checkBox_Recurring_Pattern_Monthly_Thursday.Checked = true;
                        checkBox_Recurring_Pattern_Yearly_Thursday.Checked = true;
                        break;
                    case DayOfWeek.Friday:
                        checkBox_Recurring_Pattern_Weekly_Friday.Checked = true;
                        checkBox_Recurring_Pattern_Monthly_Friday.Checked = true;
                        checkBox_Recurring_Pattern_Yearly_Friday.Checked = true;
                        break;
                    case DayOfWeek.Saturday:
                        checkBox_Recurring_Pattern_Weekly_Saturday.Checked = true;
                        checkBox_Recurring_Pattern_Monthly_Saturday.Checked = true;
                        checkBox_Recurring_Pattern_Yearly_Saturday.Checked = true;
                        break;
                    default:
                        break;
                }
            }

            if (dateTimePicker_Recurring_Range_EndByDate.Value.Date < newStartDate)
            {
                // The end date of recurring must be in the future.
                dateTimePicker_Recurring_Range_EndByDate.MinDate = newStartDate;
                dateTimePicker_Recurring_Range_EndByDate.Value = newStartDate;
            }
        }