result = result.Where(i =>
i.Title.Contains(query) || i.Description.Contains(query)
|| (extendedSearch &&
((i.CreatedBy.FirstName + " " + i.CreatedBy.LastName).Contains(query)
|| (i.AssignedTo.FirstName + " " + i.AssignedTo.LastName).Contains(query))));
(скрестив пальцы, чтобы скобки были правильными ...)
Логическая структура в выражении Where: A или (extendedSearch and B)
Если extendedSearch
равно false результат зависит только от A . Если extendedSearch
равно true результат зависит от (A или B) - который, я надеюсь, представляет логику в вашем запросе.