private static ExpressionStarter <ResCurrentType> CollectionNotEqualToPredicate(ResourceSearchExpressionTrees <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType> Search, ExpressionStarter <ResCurrentType> NewPredicate, SearchParameterDateTime SearchTypeDateTime, SearchParameterDateTimeValue SearchValue)
        {
            var NotEqualToExpression       = Search.DateTimePeriodCollectionAnyNotEqualTo(SearchTypeDateTime.Id, SearchValue.Value, FhirDateTimeSupport.CalculateHighDateTimeForRange(SearchValue.Value, SearchValue.Precision));
            var CollectionIsNullExpression = Search.SearchParameterIsNull <ResIndexDateTimeType>(SearchTypeDateTime.Id);

            NewPredicate = NewPredicate.Or(NotEqualToExpression);
            NewPredicate = NewPredicate.Or(CollectionIsNullExpression);
            return(NewPredicate);
        }
Пример #2
0
        private static ExpressionStarter <ResCurrentType> Equals(ResourceSearch <ResCurrentType, ResIndexStringType, ResIndexTokenType, ResIndexUriType, ResIndexReferenceType, ResIndexQuantityType, ResIndexDateTimeType> Search, ExpressionStarter <ResCurrentType> NewLastUpdatedPredicate, SearchParameterDateTimeValue SearchValue)
        {
            var ExpressionLow  = Search.LastUpdatedPropertyGreaterThanOrEqualTo(SearchValue.Value);
            var ExpressionHigh = Search.LastUpdatedPropertyLessThanOrEqualTo(FhirDateTimeSupport.CalculateHighDateTimeForRange(SearchValue.Value, SearchValue.Precision));
            var Expression     = ExpressionLow.And(ExpressionHigh);

            NewLastUpdatedPredicate = NewLastUpdatedPredicate.Or(Expression);
            return(NewLastUpdatedPredicate);
        }
        private static ExpressionStarter <IResourceIndexed> CollectionNotEqualToPredicate(Search <IResourceIndexed> Search, ExpressionStarter <IResourceIndexed> NewPredicate, SearchParameterDateTime SearchTypeDateTime, SearchParameterDateTimeValue SearchValue)
        {
            var NotEqualToExpression       = Search.DateTimePeriodCollectionAnyNotEqualTo(SearchTypeDateTime.Id, SearchValue.Value, FhirDateTimeSupport.CalculateHighDateTimeForRange(SearchValue.Value, SearchValue.Precision));
            var CollectionIsNullExpression = Search.SearchParameterIsNull <Index.IDateTimeIndex>(SearchTypeDateTime.Id);

            NewPredicate = NewPredicate.Or(NotEqualToExpression);
            NewPredicate = NewPredicate.Or(CollectionIsNullExpression);
            return(NewPredicate);
        }