openai/openai-dotnet

Public

mirrored from https://github.com/openai/openai-dotnetAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
OpenAI_2.1.0-beta.1

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/Custom/Files/OpenAIFileCollection.Serialization.cs

72lines · modeblame

58f93c8dShivangiReja2 years ago1using System;
9f9f2936Jose Arriaga Maldonado2 years ago2using System.ClientModel.Primitives;
3using System.Collections.Generic;
4using System.Text.Json;
5
6namespace OpenAI.Files;
7
19ceae44ShivangiReja1 years ago8[CodeGenSuppress("global::System.ClientModel.Primitives.IJsonModel<OpenAI.Files.OpenAIFileCollection>.Write", typeof(Utf8JsonWriter), typeof(ModelReaderWriterOptions))]
9public partial class OpenAIFileCollection : IJsonModel<OpenAIFileCollection>
9f9f2936Jose Arriaga Maldonado2 years ago10{
11// CUSTOM:
12// - Serialized the Items property.
19fc7d54Jose Arriaga Maldonado2 years ago13// - Recovered the serialization of SerializedAdditionalRawData. See https://github.com/Azure/autorest.csharp/issues/4636.
19ceae44ShivangiReja1 years ago14void IJsonModel<OpenAIFileCollection>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options)
15=> CustomSerializationHelpers.SerializeInstance(this, SerializeOpenAIFileCollection, writer, options);
9f9f2936Jose Arriaga Maldonado2 years ago16
19ceae44ShivangiReja1 years ago17internal static void SerializeOpenAIFileCollection(OpenAIFileCollection instance, Utf8JsonWriter writer, ModelReaderWriterOptions options)
9f9f2936Jose Arriaga Maldonado2 years ago18{
19writer.WriteStartObject();
20writer.WritePropertyName("data"u8);
21writer.WriteStartArray();
22foreach (var item in instance.Items)
23{
19ceae44ShivangiReja1 years ago24writer.WriteObjectValue<OpenAIFile>(item, options);
9f9f2936Jose Arriaga Maldonado2 years ago25}
26writer.WriteEndArray();
27writer.WritePropertyName("object"u8);
28writer.WriteStringValue(instance.Object.ToString());
19fc7d54Jose Arriaga Maldonado2 years ago29writer.WriteSerializedAdditionalRawData(instance.SerializedAdditionalRawData, options);
9f9f2936Jose Arriaga Maldonado2 years ago30writer.WriteEndObject();
31}
32
19fc7d54Jose Arriaga Maldonado2 years ago33// CUSTOM: Recovered the deserialization of SerializedAdditionalRawData. See https://github.com/Azure/autorest.csharp/issues/4636.
19ceae44ShivangiReja1 years ago34internal static OpenAIFileCollection DeserializeOpenAIFileCollection(JsonElement element, ModelReaderWriterOptions options = null)
9f9f2936Jose Arriaga Maldonado2 years ago35{
36options ??= ModelSerializationExtensions.WireOptions;
37
38if (element.ValueKind == JsonValueKind.Null)
39{
40return null;
41}
19ceae44ShivangiReja1 years ago42IReadOnlyList<OpenAIFile> data = default;
9f9f2936Jose Arriaga Maldonado2 years ago43InternalListFilesResponseObject @object = default;
44IDictionary<string, BinaryData> serializedAdditionalRawData = default;
45Dictionary<string, BinaryData> rawDataDictionary = new Dictionary<string, BinaryData>();
46foreach (var property in element.EnumerateObject())
47{
48if (property.NameEquals("data"u8))
49{
19ceae44ShivangiReja1 years ago50List<OpenAIFile> array = new List<OpenAIFile>();
9f9f2936Jose Arriaga Maldonado2 years ago51foreach (var item in property.Value.EnumerateArray())
52{
19ceae44ShivangiReja1 years ago53array.Add(OpenAIFile.DeserializeOpenAIFile(item, options));
9f9f2936Jose Arriaga Maldonado2 years ago54}
55data = array;
56continue;
57}
58if (property.NameEquals("object"u8))
59{
60@object = new InternalListFilesResponseObject(property.Value.GetString());
61continue;
62}
63if (true)
64{
65rawDataDictionary.Add(property.Name, BinaryData.FromString(property.Value.GetRawText()));
66}
67}
68serializedAdditionalRawData = rawDataDictionary;
19ceae44ShivangiReja1 years ago69return new OpenAIFileCollection(data, @object, serializedAdditionalRawData);
9f9f2936Jose Arriaga Maldonado2 years ago70}
71
72}