mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-19 18:11:36 +01:00
d5d0be5824
* Editorconfig: Add space_before_self_closing setting This was a difference between the way dotnet-format and Rider format code. See https://www.jetbrains.com/help/rider/EditorConfig_Index.html * Editorconfig: Keep 4 spaces indentation for Swagger JSON files They are all formatted that way, let's keep it like that. * Apply dotnet-format, mostly white-space related changes
38 lines
1.0 KiB
C#
38 lines
1.0 KiB
C#
using System.Linq;
|
|
using NBXplorer;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace BTCPayServer.Data
|
|
{
|
|
public static class APIKeyDataExtensions
|
|
{
|
|
public static APIKeyBlob GetBlob(this APIKeyData apiKeyData)
|
|
{
|
|
return GetBlob<APIKeyBlob>(apiKeyData.Blob);
|
|
}
|
|
|
|
public static bool SetBlob(this APIKeyData apiKeyData, APIKeyBlob blob)
|
|
{
|
|
var newBlob = SerializeBlob(blob);
|
|
if (apiKeyData?.Blob?.SequenceEqual(newBlob) is true)
|
|
return false;
|
|
apiKeyData.Blob = newBlob;
|
|
return true;
|
|
}
|
|
|
|
public static T GetBlob<T>(this byte[] data)
|
|
{
|
|
var result = data == null
|
|
? default
|
|
: JObject.Parse(ZipUtils.Unzip(data)).ToObject<T>();
|
|
return result;
|
|
}
|
|
|
|
public static byte[] SerializeBlob<T>(this T blob)
|
|
{
|
|
var newBlob = new Serializer(null).ToString(blob);
|
|
return ZipUtils.Zip(newBlob);
|
|
}
|
|
}
|
|
}
|