mirror of
https://github.com/bitwarden/server.git
synced 2025-07-05 10:02:47 -05:00

* table storage grants * simple shard on storage accounts * use is not * cosmos grant repo * remove single storage connection string * some fixes to dapper grant repo * pattern matching * add fallback to base PersistedGrantStore * service collection extension cleanup * cleanup * remove unused Id * empty string rowkey * fix sharding method logic * ttl for cosmos * make ttl an int * fixes to cosmos implementation * fix partition key values * catch notfound exceptions * indenting * update grantitem with custom serialization * use new transform helpers * grantloader perf test tool * ref * remove grant loader project * remove table storage implementation * remove table storage stuff * all redis fallback to build to null * revert sln file change * EOF new line * remove trailing comma * lint fixes * add grant to names * move cosmos serilaizer to utils * add some .net 8 keyed service comments * EnableContentResponseOnWrite * Fix type in EF grant repository
41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using System.Text.Json;
|
|
using Azure.Core.Serialization;
|
|
using Microsoft.Azure.Cosmos;
|
|
|
|
namespace Bit.Core.Utilities;
|
|
|
|
// ref: https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage/SystemTextJson/CosmosSystemTextJsonSerializer.cs
|
|
public class SystemTextJsonCosmosSerializer : CosmosSerializer
|
|
{
|
|
private readonly JsonObjectSerializer _systemTextJsonSerializer;
|
|
|
|
public SystemTextJsonCosmosSerializer(JsonSerializerOptions jsonSerializerOptions)
|
|
{
|
|
_systemTextJsonSerializer = new JsonObjectSerializer(jsonSerializerOptions);
|
|
}
|
|
|
|
public override T FromStream<T>(Stream stream)
|
|
{
|
|
using (stream)
|
|
{
|
|
if (stream.CanSeek && stream.Length == 0)
|
|
{
|
|
return default;
|
|
}
|
|
if (typeof(Stream).IsAssignableFrom(typeof(T)))
|
|
{
|
|
return (T)(object)stream;
|
|
}
|
|
return (T)_systemTextJsonSerializer.Deserialize(stream, typeof(T), default);
|
|
}
|
|
}
|
|
|
|
public override Stream ToStream<T>(T input)
|
|
{
|
|
var streamPayload = new MemoryStream();
|
|
_systemTextJsonSerializer.Serialize(streamPayload, input, input.GetType(), default);
|
|
streamPayload.Position = 0;
|
|
return streamPayload;
|
|
}
|
|
}
|