/// <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));
        }