using adas_core.Domain.Models.MongoModels; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace adas_core.Infrastructure.Utils; public class CustomPointOfCareConverter : JsonConverter { public override bool CanConvert(Type objectType) { return objectType == typeof(PointOfCare); } public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } var jo = JObject.FromObject(value); // Aquí modificas específicamente las propiedades que necesitas // Por ejemplo, aplicar StringEnumConverter solo a ciertas propiedades enumeradas // Esto es un ejemplo, ajusta según tus necesidades foreach (var prop in value.GetType().GetProperties()) if (prop.PropertyType.IsEnum) { var enumValue = prop.GetValue(value); if (enumValue != null) jo[prop.Name] = JToken.FromObject(enumValue.ToString() ?? string.Empty); } jo.WriteTo(writer); } public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) { // Implementa la lógica de deserialización si es necesario throw new NotImplementedException(); } }