Данная DLL библиотека предназначен для определения доступных временных интервалов для записи на консультацию, исходя из занятости консультанта.
Массив TimeSpan startTimes - массив времен начала занятости консультанта;
Массив int durations - массив длительности занятости консультанта;
TimeSpan beginWorkingTime - время начала рабочего дня консультанта;
TimeSpan endWorkingTime - время окончания рабочего дня консультанта;
int consultationTime - длительность консультации.
Массив строк string[] - массив доступных временных интервалов для записи на консультацию в формате "hh:mm-hh:mm".
Проверка корректности входных параметров. Если они некорректны, то метод вернет null.
Создание списка WorkTime для хранения доступных временных интервалов.
Инициализация переменной i, которая используется для определения текущей занятости консультанта.
Итерация по всем возможным временным интервалам с учетом длительности консультации.
Проверка, есть ли занятость консультанта в данный интервал времени. Если есть, то метод пропустит данный интервал.
Добавление доступного временного интервала в список WorkTime.
Преобразование списка WorkTime в массив строк и возврат его в качестве результата работы метода.
Таким образом, данный метод может быть использован для быстрого определения доступных временных интервалов для записи на консультацию, что упрощает работу с клиентами и повышает эффективность работы консультанта.
Тесты проверяют различные сценарии использования метода AvailablePeriods
с различными входными параметрами и проверяют, возвращает ли метод ожидаемый результат.
Например, тест EasyCalculate
проверяет, возвращает ли метод какой-либо результат при простом расчете свободных периодов времени;
Тест HardCalculateMoreduration
проверяет, возвращает ли метод все возможные свободные периоды времени в случае более сложного расчета со многими зарезервированными периодами времени и длинным временем консультации;
Тест IsNullCalculate
проверяет, возвращает ли метод null при вводе неверных значений параметров.
Больше проектов здесь