using Knoks.Core.Entities; using Knoks.Core.Logic.Interfaces; using Knoks.Core.Logic.Managers; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Text; namespace Knoks.Core { public class UidConverter: JsonConverter { private string key; private Type type; public UidConverter() { key = "hjtSome random value gjoej"; } public UidConverter(string Key, Type Type) { key = Key; this.type = Type; } public override bool CanRead => true; public override bool CanWrite => true; public override bool CanConvert(Type type) => type == typeof(string); public override void WriteJson( JsonWriter writer, object value, JsonSerializer serializer) { int number = Int32.Parse((string)value); writer.WriteValue(new UidManager().ToIntUid(number, type, key)); } public override object ReadJson( JsonReader reader, Type type, object existingValue, JsonSerializer serializer) { var value = reader.ReadAsString(); return new UidManager().ToIntValue(value, type, key).ToString(); } } }