internal static ChatThreadMembersCollection DeserializeChatThreadMembersCollection(JsonElement element) { Optional <IReadOnlyList <ChatThreadMemberInternal> > value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <ChatThreadMemberInternal> array = new List <ChatThreadMemberInternal>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(ChatThreadMemberInternal.DeserializeChatThreadMemberInternal(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new ChatThreadMembersCollection(Optional.ToList(value), nextLink.Value)); }
internal static ChatThreadInternal DeserializeChatThreadInternal(JsonElement element) { Optional <string> id = default; Optional <string> topic = default; Optional <DateTimeOffset> createdOn = default; Optional <string> createdBy = default; Optional <IReadOnlyList <ChatThreadMemberInternal> > members = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { id = property.Value.GetString(); continue; } if (property.NameEquals("topic")) { topic = property.Value.GetString(); continue; } if (property.NameEquals("createdOn")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } createdOn = property.Value.GetDateTimeOffset("O"); continue; } if (property.NameEquals("createdBy")) { createdBy = property.Value.GetString(); continue; } if (property.NameEquals("members")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <ChatThreadMemberInternal> array = new List <ChatThreadMemberInternal>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(ChatThreadMemberInternal.DeserializeChatThreadMemberInternal(item)); } members = array; continue; } } return(new ChatThreadInternal(id.Value, topic.Value, Optional.ToNullable(createdOn), createdBy.Value, Optional.ToList(members))); }