public
IMongoQuery GetMongoQueryIntersectWith<TCollection>(
Expression<Func<TCollection, DateTime>> fromExp,
Expression<Func<TCollection, DateTime>> toExp)
{
var
rangeTo = Query.And(Query<TCollection>.GTE(toExp, To), Query<TCollection>.LTE(fromExp, To));
var
rangeFrom = Query.And(Query<TCollection>.GTE(toExp, From), Query<TCollection>.LTE(fromExp, From));
var
rangeQuery = Query.Or(rangeTo, rangeFrom,
Query.And(Query<TCollection>.GTE(fromExp, From),Query<TCollection>.LTE(toExp, To)));
return
rangeQuery;
}