RequestContentHelper
using Azure.Core;
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text.Json;
namespace Azure.Storage.Common
{
internal static class RequestContentHelper
{
public static RequestContent FromEnumerable<[System.Runtime.CompilerServices.Nullable(1)] T>(IEnumerable<T> enumerable)
{
Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
utf8JsonRequestContent.JsonWriter.WriteStartArray();
foreach (T item in enumerable) {
utf8JsonRequestContent.JsonWriter.WriteObjectValue(item);
}
utf8JsonRequestContent.JsonWriter.WriteEndArray();
return utf8JsonRequestContent;
}
public static RequestContent FromEnumerable(IEnumerable<BinaryData> enumerable)
{
Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
utf8JsonRequestContent.JsonWriter.WriteStartArray();
foreach (BinaryData item in enumerable) {
if (item == null)
utf8JsonRequestContent.JsonWriter.WriteNullValue();
else {
using (JsonDocument jsonDocument = JsonDocument.Parse(BinaryData.op_Implicit(item), ModelSerializationExtensions.JsonDocumentOptions))
JsonSerializer.Serialize(utf8JsonRequestContent.JsonWriter, jsonDocument.RootElement, (JsonSerializerOptions)null);
}
}
utf8JsonRequestContent.JsonWriter.WriteEndArray();
return utf8JsonRequestContent;
}
public static RequestContent FromEnumerable<[System.Runtime.CompilerServices.Nullable(1)] T>(ReadOnlySpan<T> span)
{
Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
utf8JsonRequestContent.JsonWriter.WriteStartArray();
for (int i = 0; i < span.Length; i++) {
utf8JsonRequestContent.JsonWriter.WriteObjectValue(span[i]);
}
utf8JsonRequestContent.JsonWriter.WriteEndArray();
return utf8JsonRequestContent;
}
public static RequestContent FromDictionary<[System.Runtime.CompilerServices.Nullable(1)] TValue>(IDictionary<string, TValue> dictionary)
{
Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
utf8JsonRequestContent.JsonWriter.WriteStartObject();
foreach (KeyValuePair<string, TValue> item in (IEnumerable<KeyValuePair<string, TValue>>)dictionary) {
utf8JsonRequestContent.JsonWriter.WritePropertyName(item.Key);
utf8JsonRequestContent.JsonWriter.WriteObjectValue(item.Value);
}
utf8JsonRequestContent.JsonWriter.WriteEndObject();
return utf8JsonRequestContent;
}
public static RequestContent FromDictionary(IDictionary<string, BinaryData> dictionary)
{
Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
utf8JsonRequestContent.JsonWriter.WriteStartObject();
foreach (KeyValuePair<string, BinaryData> item in dictionary) {
utf8JsonRequestContent.JsonWriter.WritePropertyName(item.Key);
if (item.Value == null)
utf8JsonRequestContent.JsonWriter.WriteNullValue();
else {
using (JsonDocument jsonDocument = JsonDocument.Parse(BinaryData.op_Implicit(item.Value), ModelSerializationExtensions.JsonDocumentOptions))
JsonSerializer.Serialize(utf8JsonRequestContent.JsonWriter, jsonDocument.RootElement, (JsonSerializerOptions)null);
}
}
utf8JsonRequestContent.JsonWriter.WriteEndObject();
return utf8JsonRequestContent;
}
public static RequestContent FromObject(object value)
{
Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
utf8JsonRequestContent.JsonWriter.WriteObjectValue<object>(value);
return utf8JsonRequestContent;
}
public static RequestContent FromObject(BinaryData value)
{
Utf8JsonRequestContent utf8JsonRequestContent = new Utf8JsonRequestContent();
using (JsonDocument jsonDocument = JsonDocument.Parse(BinaryData.op_Implicit(value), ModelSerializationExtensions.JsonDocumentOptions)) {
JsonSerializer.Serialize(utf8JsonRequestContent.JsonWriter, jsonDocument.RootElement, (JsonSerializerOptions)null);
return utf8JsonRequestContent;
}
}
}
}