bool isLayoutRendered = false;
public void OnDataBound()
List<DateTime> dates = ScheduleRef.GetCurrentViewDates(); //get current view dates
ScheduleRef.ResetWorkHours(dates, null, null); //reset existing work hours
List<DateTime> workDates = new List<DateTime>();
foreach (ResourceData doctor in WorkHourData)
foreach (DateTime date in dates)
foreach (int day in doctor.WorkDays)
if ((int)date.DayOfWeek == day)
workDates.Add(date); //add the work days for specific resource
ScheduleRef.SetWorkHours(workDates, doctor.StartHour, doctor.EndHour); //set work hours for specific days and hours
workDates = new List<DateTime>();
public void OnNavigated()
isLayoutRendered = false; //to set work hours on view/date change
public List<ResourceData> WorkHourData { get; set; } = new List<ResourceData>
new ResourceData{ Id = 1, WorkDays = new int[] { 1, 2, 3, 4, 5 }, StartHour = "08:00", EndHour = "18:00" },
new ResourceData{ Id = 2, WorkDays = new int[] { 0 }, StartHour = "09:00", EndHour = "16:00" },
new ResourceData{ Id = 3, WorkDays = new int[] { 6 }, StartHour = "10:00", EndHour = "14:00" }
};