Skip to main content

FieldFilterOperatorDtoExtensions

Namespace: Meshmakers.Octo.Communication.Contracts.DataTransferObjects

Conversions between the transport enum FieldFilterOperatorDto and the engine enum .

public static class FieldFilterOperatorDtoExtensions

Inheritance ObjectFieldFilterOperatorDtoExtensions

Remarks:

AB#4956: the two enums are deliberately NOT numerically compatible. carries Contains/StartsWith/EndsWith on 13/14/15 (inserted by AB#2179), where FieldFilterOperatorDto carries Between/IsNull/IsNotNull. A numeric cast therefore silently turns a BETWEEN filter into a CONTAINS filter. Always convert through this class - never cast.

Methods

ToFieldFilterOperator(FieldFilterOperatorDto)

Converts a transport operator into the engine operator of the same name.

public static FieldFilterOperator ToFieldFilterOperator(FieldFilterOperatorDto op)

Parameters

op FieldFilterOperatorDto
The transport operator.

Returns

FieldFilterOperator
The matching engine operator.

Exceptions

ArgumentOutOfRangeException
The operator has no engine counterpart.

ToFieldFilterOperatorDto(FieldFilterOperator)

Converts an engine operator into the transport operator of the same name.

public static FieldFilterOperatorDto ToFieldFilterOperatorDto(FieldFilterOperator op)

Parameters

op FieldFilterOperator
The engine operator.

Returns

FieldFilterOperatorDto
The matching transport operator.

Exceptions

ArgumentOutOfRangeException
The operator is engine-only and cannot be expressed on the wire: (see AB#1231) and the string operators , and .

FromCkModelEnum(Enum)

Converts a CK model operator enum (System/FieldFilterOperator, e.g. as carried by a persisted query) into the engine operator of the same name.

public static FieldFilterOperator FromCkModelEnum(Enum op)

Parameters

op Enum
The CK model enum value.

Returns

FieldFilterOperator
The matching engine operator.

Exceptions

ArgumentOutOfRangeException
The value has no engine counterpart.

Remarks:

Matched by name on purpose: the CK enum is a third, independent numbering that today happens to agree with the engine up to and would drift the same way the transport enum did (AB#4956) as soon as a member is inserted on either side.