### Дополнительный фильтр для договоров

Дополнительный фильтр позволяет писать выражения для фильтрации на языке C#. В первую очередь этот фильтр используется для построения условий, которые зависят от текущей даты.
Пример 1. Выражение выведет все компании, у которых истекает срок договора в ближайшие n дней:

CompanyDocuments.Any((DateEnd - DateTime.Now).Value.TotalDays <= n && (DateEnd - DateTime.Now).Value.TotalDays > 0)

(DateEnd - DateTime.Now).Value здесь используется так как DateEnd имеет тип DateTime?(Nullable). Если поле не Nullable, то нужно писать просто:

(DateTime.Now-Created).TotalDays<14

Пример 2. Вывести все компании, у которых есть договоры, созданные в текущем месяце:

CompanyDocuments.Any(DateTime.Now.Year == DateBegin.Value.Year && DateTime.Now.Month == DateBegin.Value.Month)

Пример 3. Вывести все компании, у которых есть договоры, созданные в прошлом месяце:

CompanyDocuments.Any(DateTime.Now.AddMonths(-1).Year == DateBegin.Value.Year && DateTime.Now.AddMonths(-1).Month == DateBegin.Value.Month)

Пример 4. Вывести все компании, у которых истекает срок договора в этом месяце:

CompanyDocuments.Any(DateTime.Now.Year == DateEnd.Value.Year && DateTime.Now.Month == DateEnd.Value.Month)

Пример 5. Вывести все компании, у которых истекает срок договора в следующем месяце:

CompanyDocuments.Any(DateTime.Now.AddMonths(1).Year == DateEnd.Value.Year && DateTime.Now.AddMonths(1).Month == DateEnd.Value.Month)

Доступные интервалы времени: TotalDays.

Доступные поля для использования: DateBegin (дата начала договора, DateTime?), DateEnd (дата окончания договора, DateTime?),Created (дата и время создания, DateTime).