using LCU.Library.Internal.IncentiveApiModels.Entities; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Linq; namespace LCU.Library.Internal.IncentiveApiModels.Common { public class RoleConverter : JsonConverter { public override bool CanWrite => false; public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { throw new NotImplementedException(); } public override bool CanRead => base.CanRead; public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var roleName = (string)JObject.Load(reader)["name"]; var role = Role.GetRolesList().FirstOrDefault(role => role.Name.Equals(roleName)); return role; } public override bool CanConvert(Type objectType) { return objectType == typeof(Role); } } }