Files
ClubPenguinApi/MareSynchronosAPI/Data/HashableDataBase.cs
rootdarkarchon 381f9a4808 Messagepack (#12)
* add messagepack attributes

* fix isnullorempty

* bump api version

---------

Co-authored-by: rootdarkarchon <root.darkarchon@outlook.com>
2023-02-10 12:30:43 +01:00

22 lines
623 B
C#

using System.Security.Cryptography;
using System.Text;
using MessagePack;
using Newtonsoft.Json;
namespace MareSynchronos.API.Data;
public abstract class HashableDataBase
{
protected HashableDataBase()
{
DataHash = new(() =>
{
var json = JsonConvert.SerializeObject(this, Formatting.None);
using SHA256CryptoServiceProvider cryptoProvider = new();
return BitConverter.ToString(cryptoProvider.ComputeHash(Encoding.UTF8.GetBytes(json))).Replace("-", "", StringComparison.Ordinal);
});
}
[JsonIgnore]
public Lazy<string> DataHash { get; }
}