/// <summary> /// Returns a list of times you can select. /// </summary> /// <param name="selectedDateValue"></param> /// <param name="practitionerName"></param> /// <param name="departmentName"></param> /// <returns></returns> public List <string> GetAvailableTimes(DateTime selectedDateValue, string practitionerName, string departmentName) { List <DateTime> practitionerTimes = _practitionerRepo.GetAvailableTimesForPractitioner(selectedDateValue, practitionerName); List <DateTime> departmentTimes = _departmentRepo.GetAvailableTimesForDepartment(selectedDateValue, departmentName); List <DateTime> availableTimes = DateTimeCalculator.GetAvailableTimes(practitionerTimes, departmentTimes); return(availableTimes.ConvertAll(time => time.ToShortTimeString())); }
/// <summary> /// Returns a list of unavailable dates based on available dates for practitioners and department. /// </summary> /// <param name="practitionerName"></param> /// <param name="departmentName"></param> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <returns></returns> public List <DateTime> GetBusyDates(string practitionerName, string departmentName, DateTime startDate, DateTime endDate) { List <DateTime> practitionerAvailableDates = _practitionerRepo.GetAvailableDatesForPractitioner(practitionerName, startDate, endDate); List <DateTime> departmentAvailableDates = _departmentRepo.GetAvailableDatesForDepartment(departmentName, startDate, endDate); List <DateTime> busyDates = DateTimeCalculator.GetBusyDates(practitionerAvailableDates, departmentAvailableDates, startDate, endDate); return(busyDates); }
public DateTime GetMondayDate(DateTime today) { int weekNumber = DateTimeCalculator.GetIso8601WeekOfYear(today); return(DateTimeCalculator.FirstDateOfWeek(today.Year, weekNumber)); }