public void SetTablesAvailabilities(string firstTime, string secondTime, string currentDay)
        {
            DateTime first, second, day;

            ResetValues();             // все столики доступны

            // если выбраны и время и дата
            if (DateTime.TryParse(firstTime, out first) && DateTime.TryParse(secondTime, out second) && DateTime.TryParse(currentDay, out day))
            {
                // TODO: скорее всего не хватает проверок
                var reservations = _unitOfWork.Reservations.GetAll()
                                   .Where(r => r.Day.Date == day.Date &&
                                          // существующая бронь не должна попасть в диапазон выбора
                                          // выбранная бронь тоже не должна попасть в диапазон существующей
                                          (IsReservationInTheTimeRange(r, first, second) || IsTimeRangeInTheReservation(r, first, second)));


                foreach (var r in reservations)                 // у столиков, попавших в этот набор, меням значение на false
                {
                    _tables.First(t => t.Id == r.TableId).Availability = false;
                }
            }
        }