internal static TwinData DeserializeTwinData(JsonElement element) { Optional <string> deviceId = default; Optional <string> moduleId = default; Optional <IDictionary <string, object> > tags = default; Optional <TwinProperties> properties = default; Optional <string> etag = default; Optional <long> version = default; Optional <string> deviceEtag = default; Optional <TwinStatus> status = default; Optional <string> statusReason = default; Optional <DateTimeOffset> statusUpdateTime = default; Optional <TwinConnectionState> connectionState = default; Optional <DateTimeOffset> lastActivityTime = default; Optional <int> cloudToDeviceMessageCount = default; Optional <TwinAuthenticationType> authenticationType = default; Optional <X509Thumbprint> x509Thumbprint = default; Optional <DeviceCapabilities> capabilities = default; Optional <string> deviceScope = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("deviceId")) { deviceId = property.Value.GetString(); continue; } if (property.NameEquals("moduleId")) { moduleId = property.Value.GetString(); continue; } if (property.NameEquals("tags")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, object> dictionary = new Dictionary <string, object>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetObject()); } tags = dictionary; continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } properties = TwinProperties.DeserializeTwinProperties(property.Value); continue; } if (property.NameEquals("etag")) { etag = property.Value.GetString(); continue; } if (property.NameEquals("version")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } version = property.Value.GetInt64(); continue; } if (property.NameEquals("deviceEtag")) { deviceEtag = property.Value.GetString(); continue; } if (property.NameEquals("status")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } status = new TwinStatus(property.Value.GetString()); continue; } if (property.NameEquals("statusReason")) { statusReason = property.Value.GetString(); continue; } if (property.NameEquals("statusUpdateTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } statusUpdateTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("connectionState")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } connectionState = new TwinConnectionState(property.Value.GetString()); continue; } if (property.NameEquals("lastActivityTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } lastActivityTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("cloudToDeviceMessageCount")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } cloudToDeviceMessageCount = property.Value.GetInt32(); continue; } if (property.NameEquals("authenticationType")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } authenticationType = new TwinAuthenticationType(property.Value.GetString()); continue; } if (property.NameEquals("x509Thumbprint")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } x509Thumbprint = X509Thumbprint.DeserializeX509Thumbprint(property.Value); continue; } if (property.NameEquals("capabilities")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } capabilities = DeviceCapabilities.DeserializeDeviceCapabilities(property.Value); continue; } if (property.NameEquals("deviceScope")) { deviceScope = property.Value.GetString(); continue; } } return(new TwinData(deviceId.Value, moduleId.Value, Optional.ToDictionary(tags), properties.Value, etag.Value, Optional.ToNullable(version), deviceEtag.Value, Optional.ToNullable(status), statusReason.Value, Optional.ToNullable(statusUpdateTime), Optional.ToNullable(connectionState), Optional.ToNullable(lastActivityTime), Optional.ToNullable(cloudToDeviceMessageCount), Optional.ToNullable(authenticationType), x509Thumbprint.Value, capabilities.Value, deviceScope.Value)); }
internal TwinData(string deviceId, string moduleId, IDictionary <string, object> tags, TwinProperties properties, string etag, long?version, string deviceEtag, TwinStatus?status, string statusReason, DateTimeOffset?statusUpdateTime, TwinConnectionState?connectionState, DateTimeOffset?lastActivityTime, int?cloudToDeviceMessageCount, TwinAuthenticationType?authenticationType, X509Thumbprint x509Thumbprint, DeviceCapabilities capabilities, string deviceScope) { DeviceId = deviceId; ModuleId = moduleId; Tags = tags; Properties = properties; Etag = etag; Version = version; DeviceEtag = deviceEtag; Status = status; StatusReason = statusReason; StatusUpdateTime = statusUpdateTime; ConnectionState = connectionState; LastActivityTime = lastActivityTime; CloudToDeviceMessageCount = cloudToDeviceMessageCount; AuthenticationType = authenticationType; X509Thumbprint = x509Thumbprint; Capabilities = capabilities; DeviceScope = deviceScope; }