Установка с тройной
DateTime filterDate = endDate.HasValue ? endDate.Value : DateTime.Now.AddDays(7);
Не троичный
DateTime filterDate;
if (endDate.HasValue)
filterDate = endDate.Value;
else
filterDate = DateTime.Now.AddDays(7);
Если вы отлаживаете эти два оператора, значение filterDate не будет одинаковым. Почему это?
В первом примере filterDate заканчивается значением 01/01/0001.
Во втором примере я получаю ожидаемый результат, который является filterDate - это дата и время в будущем на 7 дней.
EDIT:
В этот момент я даже попытался установить endDate = null, просто чтобы убедиться, и вот скриншот того, что происходит.
альтернативный текст http://www.freeimagehosting.net/uploads/57bef2e50a.png
Самая странная вещь, которую я когда-либо видел.