Show / Hide Table of Contents

Class Sanitation

Collection of methods for cleaning and sanitizing objects used in requests to various CDF endpoints

Inheritance
object
Sanitation
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: Cognite.Extensions
Assembly: Cognite.Extensions.dll
Syntax
public static class Sanitation

Fields

| Edit this page View Source

AssetDescriptionMax

Maximum length of Asset description

Declaration
public const int AssetDescriptionMax = 500
Field Value
Type Description
int
| Edit this page View Source

AssetLabelsMax

Maximum number of Asset labels

Declaration
public const int AssetLabelsMax = 10
Field Value
Type Description
int
| Edit this page View Source

AssetMetadataMaxBytes

Maximum size in bytes of the Asset metadata field

Declaration
public const int AssetMetadataMaxBytes = 10240
Field Value
Type Description
int
| Edit this page View Source

AssetMetadataMaxPairs

Maximum number of Asset metadata key/value pairs

Declaration
public const int AssetMetadataMaxPairs = 256
Field Value
Type Description
int
| Edit this page View Source

AssetMetadataMaxPerKey

Maximum size in bytes of each Asset metadata key

Declaration
public const int AssetMetadataMaxPerKey = 128
Field Value
Type Description
int
| Edit this page View Source

AssetMetadataMaxPerValue

Maximum size in bytes of each Asset metadata value

Declaration
public const int AssetMetadataMaxPerValue = 10240
Field Value
Type Description
int
| Edit this page View Source

AssetNameMax

Maximum length of Asset name

Declaration
public const int AssetNameMax = 140
Field Value
Type Description
int
| Edit this page View Source

AssetSourceMax

Maximum length of Asset source

Declaration
public const int AssetSourceMax = 128
Field Value
Type Description
int
| Edit this page View Source

EventAssetIdsMax

Maximum number of Event asset ids

Declaration
public const int EventAssetIdsMax = 10000
Field Value
Type Description
int
| Edit this page View Source

EventDescriptionMax

Maximum length of Event description

Declaration
public const int EventDescriptionMax = 500
Field Value
Type Description
int
| Edit this page View Source

EventMetadataMaxBytes

Maximum size in bytes of Event metadata field

Declaration
public const int EventMetadataMaxBytes = 200000
Field Value
Type Description
int
| Edit this page View Source

EventMetadataMaxPairs

Maximum number Event metadata key/value pairs

Declaration
public const int EventMetadataMaxPairs = 256
Field Value
Type Description
int
| Edit this page View Source

EventMetadataMaxPerKey

Maximum size in bytes of each Event metadata key

Declaration
public const int EventMetadataMaxPerKey = 128
Field Value
Type Description
int
| Edit this page View Source

EventMetadataMaxPerValue

Maximum size in bytes of each Event metadata value

Declaration
public const int EventMetadataMaxPerValue = 128000
Field Value
Type Description
int
| Edit this page View Source

EventSourceMax

Maximum length of Event source

Declaration
public const int EventSourceMax = 128
Field Value
Type Description
int
| Edit this page View Source

EventTypeMax

Maximum length of Event type

Declaration
public const int EventTypeMax = 64
Field Value
Type Description
int
| Edit this page View Source

ExternalIdMax

Maximum length of External ID

Declaration
public const int ExternalIdMax = 255
Field Value
Type Description
int
| Edit this page View Source

ExternalIdMaxBytes

Maximum length of Instance ID

Declaration
public const int ExternalIdMaxBytes = 256
Field Value
Type Description
int
| Edit this page View Source

SequenceColumnDescriptionMax

Maximum length of sequence column description

Declaration
public const int SequenceColumnDescriptionMax = 1000
Field Value
Type Description
int
| Edit this page View Source

SequenceColumnMetadataMaxBytes

Maximum size of sequence column metadata in bytes

Declaration
public const int SequenceColumnMetadataMaxBytes = 10000
Field Value
Type Description
int
| Edit this page View Source

SequenceColumnMetadataMaxPerKey

Maximum size of key in sequence column metadata

Declaration
public const int SequenceColumnMetadataMaxPerKey = 32
Field Value
Type Description
int
| Edit this page View Source

SequenceColumnNameMax

Maximum length of sequence column name.

Declaration
public const int SequenceColumnNameMax = 64
Field Value
Type Description
int
| Edit this page View Source

SequenceDescriptionMax

Maximum length of sequence description

Declaration
public const int SequenceDescriptionMax = 1000
Field Value
Type Description
int
| Edit this page View Source

SequenceMetadataMaxBytes

Maximum size of sequence metadata in bytes

Declaration
public const int SequenceMetadataMaxBytes = 10000
Field Value
Type Description
int
| Edit this page View Source

SequenceMetadataMaxBytesTotal

Maximum total size of sequence and sequence column metadata.

Declaration
public const int SequenceMetadataMaxBytesTotal = 100000
Field Value
Type Description
int
| Edit this page View Source

SequenceMetadataMaxPerKey

Maximum size of key in sequence metadata

Declaration
public const int SequenceMetadataMaxPerKey = 32
Field Value
Type Description
int
| Edit this page View Source

SequenceNameMax

Maximum length of sequence name

Declaration
public const int SequenceNameMax = 255
Field Value
Type Description
int
| Edit this page View Source

SpaceIdMax

Maximum length of DM Space ID

Declaration
public const int SpaceIdMax = 43
Field Value
Type Description
int
| Edit this page View Source

TimeSeriesDescriptionMax

Maximum length of Timeseries description

Declaration
public const int TimeSeriesDescriptionMax = 1000
Field Value
Type Description
int
| Edit this page View Source

TimeSeriesMetadataMaxBytes

Maximum size in bytes of Timeseries metadata field

Declaration
public const int TimeSeriesMetadataMaxBytes = 10000
Field Value
Type Description
int
| Edit this page View Source

TimeSeriesMetadataMaxPairs

Maximum number of Timeseries metadata key/value pairs

Declaration
public const int TimeSeriesMetadataMaxPairs = 256
Field Value
Type Description
int
| Edit this page View Source

TimeSeriesMetadataMaxPerKey

Maximum size in bytes of each Timeseries metadata key

Declaration
public const int TimeSeriesMetadataMaxPerKey = 128
Field Value
Type Description
int
| Edit this page View Source

TimeSeriesMetadataMaxPerValue

Maximum size in bytes of each Timeseries metadata value

Declaration
public const int TimeSeriesMetadataMaxPerValue = 10000
Field Value
Type Description
int
| Edit this page View Source

TimeSeriesNameMax

Maximum length of Timeseries name

Declaration
public const int TimeSeriesNameMax = 255
Field Value
Type Description
int
| Edit this page View Source

TimeSeriesUnitMax

Maximum length of Timeseries unit

Declaration
public const int TimeSeriesUnitMax = 32
Field Value
Type Description
int

Methods

| Edit this page View Source

CleanAssetRequest(IEnumerable<AssetCreate>, SanitationMode)

Clean list of AssetCreate objects, sanitizing each and removing any duplicates. The first encountered duplicate is kept.

Declaration
public static (IEnumerable<AssetCreate>, IEnumerable<CogniteError<AssetCreate>>) CleanAssetRequest(IEnumerable<AssetCreate> assets, SanitationMode mode)
Parameters
Type Name Description
IEnumerable<AssetCreate> assets

AssetCreate request to clean

SanitationMode mode

The type of sanitation to apply

Returns
Type Description
(IEnumerable<AssetCreate>, IEnumerable<CogniteError<AssetCreate>>)

Cleaned create request and an optional error if any ids were duplicated

| Edit this page View Source

CleanAssetUpdateRequest(IEnumerable<AssetUpdateItem>, SanitationMode)

Clean list of AssetUpdateItem objects, sanitizing each and removing any duplicates. The first encountered duplicate is kept.

Declaration
public static (IEnumerable<AssetUpdateItem>, IEnumerable<CogniteError<AssetUpdateItem>>) CleanAssetUpdateRequest(IEnumerable<AssetUpdateItem> items, SanitationMode mode)
Parameters
Type Name Description
IEnumerable<AssetUpdateItem> items

AssetUpdate request to clean

SanitationMode mode

The type of sanitation to apply

Returns
Type Description
(IEnumerable<AssetUpdateItem>, IEnumerable<CogniteError<AssetUpdateItem>>)

Cleaned update request and a list of errors

| Edit this page View Source

CleanDataPointsRequest(IDictionary<Identity, IEnumerable<Datapoint>>, SanitationMode, double?)

Clean a request to insert datapoints.

Declaration
public static (IDictionary<Identity, IEnumerable<Datapoint>>, IEnumerable<CogniteError<DataPointInsertError>>) CleanDataPointsRequest(IDictionary<Identity, IEnumerable<Datapoint>> points, SanitationMode mode, double? nonFiniteReplacement)
Parameters
Type Name Description
IDictionary<Identity, IEnumerable<Datapoint>> points

Datapoint insertion request to clean

SanitationMode mode

Sanitation mode

double? nonFiniteReplacement

Optional replacement for non-finite values

Returns
Type Description
(IDictionary<Identity, IEnumerable<Datapoint>>, IEnumerable<CogniteError<DataPointInsertError>>)

Cleaned request and optional list of errors

| Edit this page View Source

CleanEventRequest(IEnumerable<EventCreate>, SanitationMode)

Clean list of EventCreate objects, sanitizing each and removing any duplicates. The first encountered duplicate is kept.

Declaration
public static (IEnumerable<EventCreate>, IEnumerable<CogniteError<EventCreate>>) CleanEventRequest(IEnumerable<EventCreate> events, SanitationMode mode)
Parameters
Type Name Description
IEnumerable<EventCreate> events

EventCreate request to clean

SanitationMode mode

The type of sanitation to apply

Returns
Type Description
(IEnumerable<EventCreate>, IEnumerable<CogniteError<EventCreate>>)

Cleaned request and optional error if any ids were duplicated

| Edit this page View Source

CleanSequenceDataRequest(IEnumerable<SequenceDataCreate>, SanitationMode)

Clean list of SequenceDataCreate objects, sanitizing each and removing any duplicates. The first encountered duplicate is kept. Invalid sequences due to duplicate column externalIds or other fatal issues are also removed. Invalid rows are removed individually.

Declaration
public static (IEnumerable<SequenceDataCreate>, IEnumerable<CogniteError<SequenceRowError>>) CleanSequenceDataRequest(IEnumerable<SequenceDataCreate> sequences, SanitationMode mode)
Parameters
Type Name Description
IEnumerable<SequenceDataCreate> sequences

SequenceCreate request to clean

SanitationMode mode

The type of sanitation to apply

Returns
Type Description
(IEnumerable<SequenceDataCreate>, IEnumerable<CogniteError<SequenceRowError>>)

Cleaned create request and optional errors if any ids were duplicated

| Edit this page View Source

CleanSequenceRequest(IEnumerable<SequenceCreate>, SanitationMode)

Clean list of SequenceCreate objects, sanitizing each and removing any duplicates. The first encountered duplicate is kept. Invalid sequences due to duplicate column externalIds or other fatal issues are also removed.

Declaration
public static (IEnumerable<SequenceCreate>, IEnumerable<CogniteError<SequenceCreate>>) CleanSequenceRequest(IEnumerable<SequenceCreate> sequences, SanitationMode mode)
Parameters
Type Name Description
IEnumerable<SequenceCreate> sequences

SequenceCreate request to clean

SanitationMode mode

The type of sanitation to apply

Returns
Type Description
(IEnumerable<SequenceCreate>, IEnumerable<CogniteError<SequenceCreate>>)

Cleaned create request and optional errors if any ids were duplicated

| Edit this page View Source

CleanTimeSeriesRequest(IEnumerable<TimeSeriesCreate>, SanitationMode)

Clean list of TimeSeriesCreate objects, sanitizing each and removing any duplicates. The first encountered duplicate is kept.

Declaration
public static (IEnumerable<TimeSeriesCreate>, IEnumerable<CogniteError<TimeSeriesCreate>>) CleanTimeSeriesRequest(IEnumerable<TimeSeriesCreate> timeseries, SanitationMode mode)
Parameters
Type Name Description
IEnumerable<TimeSeriesCreate> timeseries

TimeSeriesCreate request to clean

SanitationMode mode

The type of sanitation to apply

Returns
Type Description
(IEnumerable<TimeSeriesCreate>, IEnumerable<CogniteError<TimeSeriesCreate>>)

Cleaned create request and optional errors for duplicated ids and legacyNames

| Edit this page View Source

CleanTimeSeriesUpdateRequest(IEnumerable<TimeSeriesUpdateItem>, SanitationMode)

Clean list of TimeSeriesUpdateItem objects, sanitizing each and removing any duplicates. The first encountered duplicate is kept.

Declaration
public static (IEnumerable<TimeSeriesUpdateItem>, IEnumerable<CogniteError<TimeSeriesUpdateItem>>) CleanTimeSeriesUpdateRequest(IEnumerable<TimeSeriesUpdateItem> items, SanitationMode mode)
Parameters
Type Name Description
IEnumerable<TimeSeriesUpdateItem> items

TimeSeriesUpdate request to clean

SanitationMode mode

The type of sanitation to apply

Returns
Type Description
(IEnumerable<TimeSeriesUpdateItem>, IEnumerable<CogniteError<TimeSeriesUpdateItem>>)

Cleaned update request and a list of errors

| Edit this page View Source

LimitUtf8ByteCount(string?, int)

Limit the maximum number of UTF8 bytes in the given string.

Declaration
public static string? LimitUtf8ByteCount(this string? str, int n)
Parameters
Type Name Description
string str

String to truncate

int n

Maximum number of UTF8 bytes in the final string

Returns
Type Description
string

A truncated string, may be the same if no truncating was necessary

| Edit this page View Source

Sanitize(Datapoint, double?)

Sanitize this datapoint so that its value is safe for CDF consumption. This does not touch timestamp.

Declaration
public static Datapoint Sanitize(this Datapoint point, double? nanReplacement)
Parameters
Type Name Description
Datapoint point

Datapoint to sanitize

double? nanReplacement

Replacement for Infinite or NaN values

Returns
Type Description
Datapoint

Sanitized datapoint. Same datapoint object if nothing required changing

| Edit this page View Source

Sanitize(AssetCreate)

Sanitize an AssetCreate so that it can be safely sent to CDF. Requests may still fail due to conflicts or missing ids.

Declaration
public static void Sanitize(this AssetCreate asset)
Parameters
Type Name Description
AssetCreate asset

Asset to sanitize

| Edit this page View Source

Sanitize(AssetUpdateItem)

Sanitize an AssetUpdateItem so that it can be safely sent to CDF. Requests may still fail due to conflicts or missing ids.

Declaration
public static void Sanitize(this AssetUpdateItem item)
Parameters
Type Name Description
AssetUpdateItem item

Asset update to sanitize

| Edit this page View Source

Sanitize(EventCreate)

Sanitize a EventCreate object so that it can be safely sent to CDF. Requests may still fail due to conflicts or missing ids.

Declaration
public static void Sanitize(this EventCreate evt)
Parameters
Type Name Description
EventCreate evt

Event to sanitize

| Edit this page View Source

Sanitize(SequenceCreate)

Sanitize a SequenceCreate object so that it can be safely sent to CDF. Requests may still fail due to conflicts or missing ids.

Declaration
public static void Sanitize(this SequenceCreate seq)
Parameters
Type Name Description
SequenceCreate seq

Sequence to sanitize

| Edit this page View Source

Sanitize(SequenceDataCreate)

Sanitize a SequenceDataCreate object.

Declaration
public static void Sanitize(this SequenceDataCreate seq)
Parameters
Type Name Description
SequenceDataCreate seq
| Edit this page View Source

Sanitize(SequenceRow)

Ensure that all row values are valid. i.e. within -1E100 and 1E100, not infinity or NaN, all string values less than 256 characters.

Declaration
public static void Sanitize(this SequenceRow row)
Parameters
Type Name Description
SequenceRow row
| Edit this page View Source

Sanitize(TimeSeriesCreate)

Sanitize a TimeSeriesCreate object so that it can be safely sent to CDF. Requests may still fail due to conflicts or missing ids.

Declaration
public static void Sanitize(this TimeSeriesCreate ts)
Parameters
Type Name Description
TimeSeriesCreate ts

TimeSeries to sanitize

| Edit this page View Source

Sanitize(TimeSeriesUpdateItem)

Sanitize a TimeSeriesUpdateItem object so that it can be safely sent to CDF. Requests may still fail due to conflicts or missing ids.

Declaration
public static void Sanitize(this TimeSeriesUpdateItem item)
Parameters
Type Name Description
TimeSeriesUpdateItem item

TimeSeries update to sanitize

| Edit this page View Source

SanitizeMetadata(Dictionary<string, string>?, int, int, int, int, out int)

Sanitize a string, string metadata dictionary by limiting the number of UTF8 bytes per key, value and total, as well as the total number of key, value pairs.

Declaration
public static Dictionary<string, string>? SanitizeMetadata(this Dictionary<string, string>? data, int maxPerKey, int maxKeys, int maxPerValue, int maxBytes, out int bytes)
Parameters
Type Name Description
Dictionary<string, string> data

Metadata to limit

int maxPerKey

Maximum number of bytes per key

int maxKeys

Maximum number of key, value pairs

int maxPerValue

Maximum number of bytes per value

int maxBytes

Maximum number of total bytes

int bytes

Total number of bytes in returned metadata

Returns
Type Description
Dictionary<string, string>

A sanitized dictionary

| Edit this page View Source

ToDictionarySafe<TInput, TKey, TValue>(IEnumerable<TInput>, Func<TInput, TKey>, Func<TInput, TValue>, IEqualityComparer<TKey>?)

Transform an enumerable into a dictionary. Unlike the LINQ version, this simply uses the last value if there are duplicates, instead of throwing an error.

Declaration
public static Dictionary<TKey, TValue> ToDictionarySafe<TInput, TKey, TValue>(this IEnumerable<TInput> input, Func<TInput, TKey> keySelector, Func<TInput, TValue> valueSelector, IEqualityComparer<TKey>? comparer = null) where TKey : notnull
Parameters
Type Name Description
IEnumerable<TInput> input

Input enumerable

Func<TInput, TKey> keySelector

Function to select key from input

Func<TInput, TValue> valueSelector

Function to select value from input

IEqualityComparer<TKey> comparer

IEqualityComparer to use for dictionary

Returns
Type Description
Dictionary<TKey, TValue>

A dictionary form TKey to TValue

Type Parameters
Name Description
TInput

Input enumerable type

TKey

Output key type

TValue

Output value type

| Edit this page View Source

Truncate(CogniteExternalId?, int)

Reduce the length of given CogniteExternalId to maxLength, if it is longer.

Declaration
public static CogniteExternalId? Truncate(this CogniteExternalId? id, int maxLength)
Parameters
Type Name Description
CogniteExternalId id

CogniteExternalId to be shortened

int maxLength

Maximum length of final string

Returns
Type Description
CogniteExternalId

CogniteExternalId which contains the first maxLength characters of the passed value.

| Edit this page View Source

Truncate(UpdateNullable<string>?, int)

Reduce the length of "set" on given update to maxLength, if it is longer.

Declaration
public static UpdateNullable<string>? Truncate(this UpdateNullable<string>? update, int maxLength)
Parameters
Type Name Description
UpdateNullable<string> update

String update to be shortened

int maxLength

Maximum length of final string

Returns
Type Description
UpdateNullable<string>

String update which contains the first maxLength characters of the passed value.

| Edit this page View Source

Truncate(Update<string>?, int)

Reduce the length of "set" on given update to maxLength, if it is longer.

Declaration
public static Update<string>? Truncate(this Update<string>? update, int maxLength)
Parameters
Type Name Description
Update<string> update

String update to be shortened

int maxLength

Maximum length of final string

Returns
Type Description
Update<string>

String update which contains the first maxLength characters of the passed value.

| Edit this page View Source

Truncate(string?, int)

Reduce the length of given string to maxLength, if it is longer.

Declaration
public static string? Truncate(this string? str, int maxLength)
Parameters
Type Name Description
string str

String to be shortened

int maxLength

Maximum length of final string

Returns
Type Description
string

String which contains the first maxLength characters of the passed string.

| Edit this page View Source

TruncateBytes(string?, int)

Reduce the length of given string to maxLength of UTF-8 bytes, if it is longer.

Declaration
public static string? TruncateBytes(this string? str, int maxLength)
Parameters
Type Name Description
string str

String to be shortened

int maxLength

Maximum length of final string in bytes

Returns
Type Description
string

String which contains the characters fitting in maxLength bytes from the start of the passed string.

| Edit this page View Source

Verify(Datapoint)

Verify that this datapoint can be safely consumed by CDF.

Declaration
public static ResourceType? Verify(this Datapoint point)
Parameters
Type Name Description
Datapoint point

Point to verify

Returns
Type Description
ResourceType?

Either DataPointValue or DataPointTimestamp if these are wrong, else null

| Edit this page View Source

Verify(AssetCreate)

Check that given AssetCreate satisfies CDF limits.

Declaration
public static ResourceType? Verify(this AssetCreate asset)
Parameters
Type Name Description
AssetCreate asset

Asset to check

Returns
Type Description
ResourceType?

Failed resourceType or null if nothing failed

| Edit this page View Source

Verify(AssetUpdateItem)

Check that given AssetUpdateItem satisfies CDF limits.

Declaration
public static ResourceType? Verify(this AssetUpdateItem item)
Parameters
Type Name Description
AssetUpdateItem item

Asset to check

Returns
Type Description
ResourceType?

Failed resourceType or null if nothing failed

| Edit this page View Source

Verify(EventCreate)

Check that given EventCreate satisfies CDF limits.

Declaration
public static ResourceType? Verify(this EventCreate evt)
Parameters
Type Name Description
EventCreate evt

Event to check

Returns
Type Description
ResourceType?

True if event satisfies limits

| Edit this page View Source

Verify(SequenceCreate)

Check that given SequenceCreate satisfies CDF limits.

Declaration
public static ResourceType? Verify(this SequenceCreate seq)
Parameters
Type Name Description
SequenceCreate seq

Sequence to check

Returns
Type Description
ResourceType?

Null if sequence satisfies limits, otherwise the resource type that fails

| Edit this page View Source

Verify(SequenceDataCreate)

Check that given SequenceDataCreate satisifes CDF limits and requirements.

Declaration
public static ResourceType? Verify(this SequenceDataCreate seq)
Parameters
Type Name Description
SequenceDataCreate seq

Sequence data create to check

Returns
Type Description
ResourceType?

Null if create satisfies limits, otherwise the resource type that fails

| Edit this page View Source

Verify(SequenceRow, SequenceDataCreate)

Check that the given sequence row is valid

Declaration
public static ResourceType? Verify(this SequenceRow row, SequenceDataCreate seq)
Parameters
Type Name Description
SequenceRow row

Row to check

SequenceDataCreate seq

Sequence this row belongs to, should be verified

Returns
Type Description
ResourceType?
| Edit this page View Source

Verify(TimeSeriesCreate)

Check that given TimeSeriesCreate satisfies CDF limits.

Declaration
public static ResourceType? Verify(this TimeSeriesCreate ts)
Parameters
Type Name Description
TimeSeriesCreate ts

Timeseries to check

Returns
Type Description
ResourceType?

True if timeseries satisfies limits

| Edit this page View Source

Verify(TimeSeriesUpdateItem)

Check that given TimeSeriesUpdateItem satisfies CDF limits. Update may fail if new size of timeseries metadata exceeds limit for total size.

Declaration
public static ResourceType? Verify(this TimeSeriesUpdateItem item)
Parameters
Type Name Description
TimeSeriesUpdateItem item

Timeseries update to check

Returns
Type Description
ResourceType?

True if timeseries update satisfies limits

| Edit this page View Source

VerifyMetadata(Dictionary<string, string>?, int, int, int, int, out int)

Check that the given metadata dictionary satisfies the limits of UTF8 bytes per key, value and total, as well as the total number of key, value pairs, as specified in the parameters

Declaration
public static bool VerifyMetadata(this Dictionary<string, string>? data, int maxPerKey, int maxKeys, int maxPerValue, int maxBytes, out int bytes)
Parameters
Type Name Description
Dictionary<string, string> data

Metadata to verify

int maxPerKey

Maximum number of bytes per key

int maxKeys

Maximum number of key, value pairs

int maxPerValue

Maximum number of bytes per value

int maxBytes

Maximum number of total bytes

int bytes

Total number of bytes in metadata

Returns
Type Description
bool

True if the limits are satisfied, false otherwise

  • Edit this page
  • View Source
In this article
Back to top Generated by DocFX