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 static DeviceIdentity DeserializeDeviceIdentity(JsonElement element) { Optional <string> deviceId = default; Optional <string> generationId = default; Optional <string> etag = default; Optional <DeviceConnectionState> connectionState = default; Optional <DeviceStatus> status = default; Optional <string> statusReason = default; Optional <DateTimeOffset> connectionStateUpdatedTime = default; Optional <DateTimeOffset> statusUpdatedTime = default; Optional <DateTimeOffset> lastActivityTime = default; Optional <int> cloudToDeviceMessageCount = default; Optional <AuthenticationMechanism> authentication = 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("generationId")) { generationId = property.Value.GetString(); continue; } if (property.NameEquals("etag")) { etag = property.Value.GetString(); continue; } if (property.NameEquals("connectionState")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } connectionState = new DeviceConnectionState(property.Value.GetString()); continue; } if (property.NameEquals("status")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } status = new DeviceStatus(property.Value.GetString()); continue; } if (property.NameEquals("statusReason")) { statusReason = property.Value.GetString(); continue; } if (property.NameEquals("connectionStateUpdatedTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } connectionStateUpdatedTime = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("statusUpdatedTime")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } statusUpdatedTime = property.Value.GetDateTimeOffset("O"); 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("authentication")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } authentication = AuthenticationMechanism.DeserializeAuthenticationMechanism(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 DeviceIdentity(deviceId.Value, generationId.Value, etag.Value, Optional.ToNullable(connectionState), Optional.ToNullable(status), statusReason.Value, Optional.ToNullable(connectionStateUpdatedTime), Optional.ToNullable(statusUpdatedTime), Optional.ToNullable(lastActivityTime), Optional.ToNullable(cloudToDeviceMessageCount), authentication.Value, capabilities.Value, deviceScope.Value)); }