Click here to Skip to main content
15,887,465 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
I have this below code:
C#
var onMondayAndTuesday = DailyTimeIntervalScheduleBuilder.Create()
                     .OnDaysOfTheWeek(new DayOfWeek[] { DayOfWeek.Monday, DayOfWeek.Tuesday });

var trigger = TriggerBuilder.Create()
    .StartAt(DateBuilder.DateOf(StartHour, StartMinute, StartSeconds, StartDate, StartMonth, StartYear))
    .WithSchedule(onMondayAndTuesday)
    .WithCalendarIntervalSchedule(x => x.WithIntervalInWeeks(Int32.Parse(nWeekInterval)))
    .EndAt(DateBuilder.DateOf(0, 0, 0, EndDay, EndMonth, EndYear))
    .WithIdentity(triggerKey)
    .Build();


Here depending on the days users have selected any weekday would be passed in to the DaysOfWeek array. It might be just monday or monday and friday etc. How can I achieve this? Please advice.
Posted
Updated 30-Mar-15 17:21pm
v2

1 solution

Assuming the user selects the days with CheckBoxes (otherwise you would have to make only minor adjustments):

C#
List<DayOfWeek> selectedDays = new List<DayOfWeek>();

if (MondayCheckBox.Checked) selectedDays.Add(DayOfWeek.Monday);
if (TuesdayCheckBox.Checked) selectedDays.Add(DayOfWeek.Tuesday);
// + Wednesday through Sunday

var onSelectedDays = DailyTimeIntervalScheduleBuilder.Create()
          .OnDaysOfTheWeek(selectedDays.ToArray());

// or, if OnDaysOfTheWeek accepts an IEnumerable:

var onSelectedDays = DailyTimeIntervalScheduleBuilder.Create()
          .OnDaysOfTheWeek(selectedDays);
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900