Files
adas-core/adas-core.Infrastructure/Utils/MongoMaps/BoxConfigMapContributor.cs
T

48 lines
1.9 KiB
C#

using adas_core.Domain.Enums;
using adas_core.Domain.Models.BsonConverters;
using adas_core.Domain.Models.MongoModels;
using adas_core.Infrastructure.Utils.MongoMaps.Interfaz;
using MongoDB.Bson;
using MongoDB.Bson.Serialization;
using MongoDB.Bson.Serialization.Serializers;
using Stream = adas_core.Domain.Models.MongoModels.Stream;
namespace adas_core.Infrastructure.Utils.MongoMaps;
public class BoxConfigMapContributor : IEntityMapContributor
{
public void RegisterMaps()
{
if (!BsonClassMap.IsClassMapRegistered(typeof(Box)))
BsonClassMap.RegisterClassMap<Box>(cm =>
{
cm.AutoMap();
cm.UnmapMember(c => c.PointOfCare); //Esto hace que ignora la propiedad en la serialización del Bson
cm.MapMember(c => c.Bed).SetElementName("name");
cm.UnmapMember(c => c.IsActive);
cm.UnmapMember(c => c.IsVisible);
cm.MapMember(c => c.Configuration)
.SetSerializer(new DictionaryBsonConverter())
.SetIgnoreIfNull(true);
cm.UnmapMember(c => c.Location);
cm.UnmapMember(c => c.HasPatient);
cm.UnmapMember(c => c.Patientid);
cm.UnmapMember(c => c.Patient);
cm.UnmapMember(c => c.AttendingDoctor);
cm.UnmapMember(c => c.Type);
cm.UnmapMember(c => c.Observations);
cm.UnmapMember(c => c.Medication);
});
if (!BsonClassMap.IsClassMapRegistered(typeof(Sensor)))
BsonClassMap.RegisterClassMap<Sensor>(cm =>
{
cm.AutoMap();
cm.MapMember(c => c.Name).SetIgnoreIfNull(true);
cm.MapMember(c => c.Title).SetIgnoreIfNull(true);
cm.MapMember(c => c.OnlyNumbers).SetDefaultValue(true);
cm.MapMember(c => c.IsGeneral).SetDefaultValue(true);
});
}
}