diff --git a/Pilz.Cryptography/Pilz.Cryptography.csproj b/Pilz.Cryptography/Pilz.Cryptography.csproj index f953029..eb71d4d 100644 --- a/Pilz.Cryptography/Pilz.Cryptography.csproj +++ b/Pilz.Cryptography/Pilz.Cryptography.csproj @@ -51,6 +51,7 @@ + diff --git a/Pilz.Cryptography/UniquiIDStringJsonConverter.cs b/Pilz.Cryptography/UniquiIDStringJsonConverter.cs new file mode 100644 index 0000000..128f4f4 --- /dev/null +++ b/Pilz.Cryptography/UniquiIDStringJsonConverter.cs @@ -0,0 +1,40 @@ +using Newtonsoft.Json; +using Pilz.Cryptography; +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Compression; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Pilz.Json.Converters +{ + public class UniquiIDStringJsonConverter : JsonConverter + { + public override bool CanConvert(Type objectType) + { + return typeof(UniquieID).IsAssignableFrom(objectType); + } + + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + var idString = serializer.Deserialize(reader); + UniquieID id; + + if (existingValue is object) + id = (UniquieID)existingValue; + else + id = new UniquieID(); + + id.ID = idString; + + return id; + } + + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + serializer.Serialize(writer, ((UniquieID)value).ID); + } + } +} diff --git a/Pilz.Cryptography/UniquieID.cs b/Pilz.Cryptography/UniquieID.cs index b4d7af3..16efa58 100644 --- a/Pilz.Cryptography/UniquieID.cs +++ b/Pilz.Cryptography/UniquieID.cs @@ -7,7 +7,7 @@ using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; -namespace SM64Lib +namespace Pilz.Cryptography { public class UniquieID {