private static DataValue FromDataType(DataType dt) { switch (dt) { case DataType.Bool: return(new DataValue("false")); case DataType.Byte: case DataType.SByte: case DataType.Int16: case DataType.UInt16: case DataType.Int32: case DataType.UInt32: case DataType.Int64: case DataType.UInt64: return(new DataValue("0")); case DataType.Float32: case DataType.Float64: return(new DataValue("0.0")); case DataType.String: case DataType.ObjectRef: case DataType.LocationRef: case DataType.URI: case DataType.Enum: return(new DataValue("\"\"")); case DataType.JSON: return(new DataValue("\"0.0\"")); case DataType.Guid: return(new DataValue("\"00000000-0000-0000-0000-00000000000\"")); case DataType.NamedValue: return(new DataValue("{ \"Name\": \"\", \"Value\": \"\"}")); case DataType.LocalDate: return(FromString(LocalDate.FromJavaTicks(0).ToString())); case DataType.LocalTime: return(FromString(LocalTime.FromMillisecondsOfDay(0).ToString())); case DataType.LocalDateTime: return(FromString(LocalDateTime.FromJavaTicks(0).ToString())); case DataType.Timestamp: return(FromString(Timestamp.FromJavaTicks(0).ToString())); case DataType.Duration: return(FromString(Duration.FromSeconds(0).ToString())); case DataType.Struct: return(new DataValue("{}")); } return(new DataValue(null)); }
private bool IsIntervalBetweenTimetamps(Timestamp tLeft, Timestamp tRight, History history) { if (!history.Interval.HasValue) { return(false); } long intervalMS = history.Interval.Value.TotalMilliseconds; long offMS = history.Offset.HasValue ? history.Offset.Value.TotalMilliseconds : 0; long intervals = 1 + (tLeft.JavaTicks - offMS) / intervalMS; Timestamp tNext = Timestamp.FromJavaTicks(intervals * intervalMS + offMS); return(tNext < tRight); }