Table of Contents

Class ConditionFactory

Namespace
Geotab.Checkmate.ObjectModel.Exceptions
Assembly
Geotab.Checkmate.ObjectModel.dll

Factory for creating conditions.

public static class ConditionFactory
Inheritance
ConditionFactory
Inherited Members

Remarks

The is an internal class.

Methods

AddImmediateChildren(IList<Condition>?, IEnumerable<Condition?>?, Condition?, Rule?, bool)

Adds the immediate children.

public static void AddImmediateChildren(IList<Condition>? container, IEnumerable<Condition?>? children, Condition? parent, Rule? rule, bool clone)

Parameters

container IList<Condition>

The container.

children IEnumerable<Condition>

The children.

parent Condition

The parent.

rule Rule

The rule.

clone bool

If set to true [clone].

And(params Condition?[])

And two or more conditions.

public static Condition? And(params Condition?[] conditions)

Parameters

conditions Condition[]

The conditions.

Returns

Condition

Condition

CreateAnyDataCondition(Condition)

Creates any data condition.

public static Condition CreateAnyDataCondition(Condition condition)

Parameters

condition Condition

The condition.

Returns

Condition

Condition

CreateAreaCondition(ConditionType, Zone?, ZoneType?)

Creates the area condition.

public static Condition CreateAreaCondition(ConditionType conditionKind, Zone? zone, ZoneType? zoneType)

Parameters

conditionKind ConditionType

Kind of the condition.

zone Zone

The zone.

zoneType ZoneType

Type of the zone.

Returns

Condition

Condition

Exceptions

ArgumentNullException

If condition type is zone stop and no zone supplied.

CreateAreaConditionWithPercentageRoadLength(ConditionType, Zone?, ZoneType?, double?)

Creates the area condition with percentage of road length.

public static Condition CreateAreaConditionWithPercentageRoadLength(ConditionType conditionKind, Zone? zone, ZoneType? zoneType, double? pctRoadLength = null)

Parameters

conditionKind ConditionType

Kind of the condition.

zone Zone

The zone.

zoneType ZoneType

Type of the zone.

pctRoadLength double?

Percentage of Road length.

Returns

Condition

Condition

Exceptions

ArgumentNullException

If condition type is zone stop and no zone supplied.

CreateCondition(ConditionType)

Creates the condition.

public static Condition CreateCondition(ConditionType conditionKind)

Parameters

conditionKind ConditionType

Kind of the condition.

Returns

Condition

Condition

CreateConditionToCompareDiagnosticsByValue(Diagnostic, Diagnostic, ConditionType, double?)

Compare diagnostics by value

public static Condition CreateConditionToCompareDiagnosticsByValue(Diagnostic diagnostic1, Diagnostic diagnostic2, ConditionType type, double? value)

Parameters

diagnostic1 Diagnostic

diagnostic 1

diagnostic2 Diagnostic

diagnostic 2

type ConditionType

condition type

value double?

value

Returns

Condition

a condition Condition

CreateContinuousGpsCondition(long?)

Creates continuous gps data Condition.

public static Condition CreateContinuousGpsCondition(long? maxNoLogSeconds)

Parameters

maxNoLogSeconds long?

The maximum period of time in seconds between 2 consecutive GPS logs.

Returns

Condition

Condition

CreateContinuousGpsDistanceCondition(long?)

Creates continuous distance gps data Condition.

public static Condition CreateContinuousGpsDistanceCondition(long? maxNoLogDistance)

Parameters

maxNoLogDistance long?

The maximum distance in meters between 2 consecutive GPS logs.

Returns

Condition

Condition

CreateDVIRDefectCondition()

Creates the dvirDefect condition.

public static Condition CreateDVIRDefectCondition()

Returns

Condition

Condition

CreateDVIRDefectCondition(DefectSeverity)

Creates a DvirDefect condition with the specified. DefectSeverity

public static Condition CreateDVIRDefectCondition(DefectSeverity severityFilter)

Parameters

severityFilter DefectSeverity

The required DefectSeverity value to trigger an. ExceptionEvent

Returns

Condition

Condition

CreateDeviceCondition(Device)

Creates the device condition.

public static Condition CreateDeviceCondition(Device device)

Parameters

device Device

The device.

Returns

Condition

Condition

CreateDeviceWorkTimeCondition(bool)

Creates the device work time condition.

public static Condition CreateDeviceWorkTimeCondition(bool outside)

Parameters

outside bool

If set to true [outside].

Returns

Condition

Condition

CreateDriverCondition(Driver)

Creates the driver condition.

public static Condition CreateDriverCondition(Driver driver)

Parameters

driver Driver

The driver.

Returns

Condition

Condition

CreateFaultCondition(Diagnostic, bool)

Creates the fault condition.

public static Condition CreateFaultCondition(Diagnostic diagnostic, bool isActiveFault)

Parameters

diagnostic Diagnostic

The diagnostic.

isActiveFault bool

If set to true [is active fault].

Returns

Condition

Condition

CreateFilterDataByDiagnostic(ConditionType, Diagnostic)

Creates the filter data by diagnostic.

public static Condition CreateFilterDataByDiagnostic(ConditionType conditionKind, Diagnostic diagnostic)

Parameters

conditionKind ConditionType

Kind of the condition.

diagnostic Diagnostic

The diagnostic.

Returns

Condition

Condition

CreateGroupCondition(Group)

Creates Group condition.

public static Condition CreateGroupCondition(Group group)

Parameters

group Group

The required Group

Returns

Condition

Condition

CreateIdlingCondition(double?, long?, bool)

Creates idling condition.

public static Condition? CreateIdlingCondition(double? maxIdlingSpeed, long? maxNoLogSeconds, bool notDrivingCondition = false)

Parameters

maxIdlingSpeed double?

The maximum Idling Speed. The default idling rule does not use maxIdlingSpeed so it is null.

maxNoLogSeconds long?

The maximum period of time in seconds between 2 consecutive GPS logs.

notDrivingCondition bool

Set to true to include not driving condition for rule. Used in default idling rule.

Returns

Condition

Condition

CreateInvertResultCondition(Condition)

Creates the invert result condition.

public static Condition CreateInvertResultCondition(Condition condition)

Parameters

condition Condition

The condition.

Returns

Condition

Condition

CreateIsDrivingCondition()

Creates the is driving condition.

public static Condition CreateIsDrivingCondition()

Returns

Condition

Condition

CreateIsStoppedCondition()

Creates the is stopped condition.

public static Condition CreateIsStoppedCondition()

Returns

Condition

Condition

CreateSpeedLimitAsMeasurementCondition(double, bool)

Creates the speed limit as measurement condition.

public static Condition CreateSpeedLimitAsMeasurementCondition(double graceValue, bool belowSpeedLimit = false)

Parameters

graceValue double

The grace value.

belowSpeedLimit bool

When true, the speed below speed limit would trigger the violation. Default value: false.

Returns

Condition

Condition

CreateSpeedLimitCondition(double, ConditionType, bool, bool)

Creates the speed limit condition.

public static Condition CreateSpeedLimitCondition(double graceValue, ConditionType conditionType = ConditionType.SpeedLimit, bool belowSpeedLimit = false, bool isPercent = false)

Parameters

graceValue double

The grace value.

conditionType ConditionType

The ConditionType for the Condition

belowSpeedLimit bool

When true, the speed below speed limit would trigger the violation. Default value: false.

isPercent bool

When true, a violation is triggered when the current speed is graceValue * speedLimit more/less than the speedLimit.

Returns

Condition

Condition

CreateSpeedValueCondition(double?, double?)

Creates the speed value condition.

public static Condition? CreateSpeedValueCondition(double? lowBound, double? upperBound)

Parameters

lowBound double?

The low bound.

upperBound double?

The upper bound.

Returns

Condition

Condition

Exceptions

ArgumentException

When both arguments undefined or upperBound is gte lowBound.

CreateStatusAbsenceCheckCondition(Diagnostic)

Creates the status absence check condition.

public static Condition CreateStatusAbsenceCheckCondition(Diagnostic diagnostic)

Parameters

diagnostic Diagnostic

The diagnostic.

Returns

Condition

Condition

CreateStatusValueCondition(Diagnostic, double?, double?, double?)

Creates the status value condition.

public static Condition CreateStatusValueCondition(Diagnostic diagnostic, double? lowBound, double? upperBound, double? exactlyAtValue)

Parameters

diagnostic Diagnostic

The diagnostic.

lowBound double?

The low bound.

upperBound double?

The upper bound.

exactlyAtValue double?

The exactly at value.

Returns

Condition

Condition

Exceptions

InvalidOperationException

When result is null.

CreateValueCondition(ConditionType, double?)

Creates the value condition.

public static Condition CreateValueCondition(ConditionType conditionKind, double? value)

Parameters

conditionKind ConditionType

Kind of the condition.

value double?

The value.

Returns

Condition

Condition

CreateWifiMaxTierUsageCondition(Diagnostic, double)

Creates the WifiMaxTierUsageLimit condition.

public static Condition CreateWifiMaxTierUsageCondition(Diagnostic diagnostic, double percentage)

Parameters

diagnostic Diagnostic

The required Diagnostic

percentage double

The required percentage value to trigger an. ExceptionEvent

Returns

Condition

Condition

CreateWifiTierUsageCondition(Diagnostic, double)

Creates the WifiTierUsageLimit condition.

public static Condition CreateWifiTierUsageCondition(Diagnostic diagnostic, double percentage)

Parameters

diagnostic Diagnostic

The required Diagnostic

percentage double

The required percentage value to trigger an. ExceptionEvent

Returns

Condition

Condition

CreateWorkTimeCondition(WorkTime, bool)

Creates the work time condition.

public static Condition CreateWorkTimeCondition(WorkTime workTime, bool outside)

Parameters

workTime WorkTime

The work time.

outside bool

If set to true [outside].

Returns

Condition

Condition

GetParentRank(Condition, bool)

Returns a number representing a condition rank in the parent-child chain of connected condition nodes.

public static int GetParentRank(Condition condition, bool useOfChildrenRank)

Parameters

condition Condition

The. Condition

useOfChildrenRank bool

If true, the highest-ranked child of {ConditionType.Or}ranks its parent.

Returns

int

Values: -1: not applicable; 0: lowest rank, etc.

GetSpeedLimitRequestOption(ConditionType, bool)

Road max speed helper method. Converts a rule conditionType to its corresponding map request option.

public static SpeedLimitRequestOptions GetSpeedLimitRequestOption(ConditionType conditionType, bool noSnapping)

Parameters

conditionType ConditionType

ConditionType defines the options for road speed limit request.

noSnapping bool

Defines the options for road speed limit request to ignore snapping to road.

Returns

SpeedLimitRequestOptions

The map request option.

Inclusive(params Condition[])

Inclusive two or more conditions.

public static Condition Inclusive(params Condition[] conditions)

Parameters

conditions Condition[]

The conditions.

Returns

Condition

Condition

Normalize(Condition)

Converts condition into equivalent normalized (ready for processing) condition.

public static Condition Normalize(Condition condition)

Parameters

condition Condition

The condition.

Returns

Condition

The equivalent condition.

Or(params Condition[])

Or two or more conditions.

public static Condition? Or(params Condition[] conditions)

Parameters

conditions Condition[]

The conditions.

Returns

Condition

Condition

Remarks

Will ignore null condition treating as if no such condition is present in the array.