using adas_core.Domain.Enums; using adas_core.Domain.Models.GroupedObservations; 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; namespace adas_core.Infrastructure.Utils.MongoMaps; public class DisplayMapContributor : IEntityMapContributor { public void RegisterMaps() { if (!BsonClassMap.IsClassMapRegistered(typeof(Display))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapIdMember(c => c.Id).SetElementName("_id"); cm.UnmapProperty(c => c.Unit); cm.UnmapProperty(c => c.PointOfCares); cm.UnmapProperty(c => c.DisplayConfig); cm.MapMember(c => c.Type) .SetDefaultValue(DisplayConfigEnums.DisplayType.Unknown) .SetSerializer(new EnumSerializer(BsonType.String)); }); if (!BsonClassMap.IsClassMapRegistered(typeof(DisplayNurse))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); if (!BsonClassMap.IsClassMapRegistered(typeof(StandarDisplay))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.SectionConfig).SetIgnoreIfNull(true); }); if (!BsonClassMap.IsClassMapRegistered(typeof(SmartDisplay))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); if (!BsonClassMap.IsClassMapRegistered(typeof(PumpDisplay))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); }); if (!BsonClassMap.IsClassMapRegistered(typeof(DisplayConfig))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.AddKnownType(typeof(DisplayNurse)); cm.AddKnownType(typeof(StandarDisplay)); cm.AddKnownType(typeof(SmartDisplay)); cm.AddKnownType(typeof(PumpDisplay)); cm.MapIdMember(c => c.Id).SetElementName("_id"); cm.MapMember(c => c.Type) .SetDefaultValue(DisplayConfigEnums.DisplayType.Unknown) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(c => c.MediaFolder).SetIgnoreIfNull(true); cm.MapMember(c => c.CardConfigId).SetIgnoreIfNull(true); cm.MapMember(c => c.CardConfig) .SetIgnoreIfNull(true) .SetIsRequired(false); cm.MapMember(c => c.DetailConfigId).SetIgnoreIfNull(true); cm.MapMember(c => c.DetailConfig) .SetIgnoreIfNull(true) .SetIsRequired(false); cm.MapMember(c => c.HomeBanner).SetIgnoreIfNull(true); cm.MapMember(c => c.FormConfig) .SetDefaultValue(new FormConfig { Admission = new FormItemOverview { Nhc = true }, Demographic = new FormItemOverview { Nhc = true }, Discharge = new FormItemOverview { Nhc = true }, IncomeInfo = new FormItemOverview { Nhc = true } }); cm.MapMember(c => c.HasCameras).SetIgnoreIfNull(true); cm.MapMember(c => c.HasSound).SetIgnoreIfNull(true); cm.MapMember(c => c.IsRotationEnabled).SetIgnoreIfNull(true); cm.MapMember(c => c.CanChangeCameraMode).SetIgnoreIfNull(true); cm.MapMember(c => c.CamerasAreActive).SetIgnoreIfNull(true); cm.MapMember(c => c.CameraStreamType).SetIgnoreIfNull(true); cm.MapMember(c => c.SensorList).SetIgnoreIfNull(true); cm.MapMember(c => c.ObservationForIndicator).SetIgnoreIfNull(true); cm.MapMember(c => c.AlarmFieldList).SetIgnoreIfNull(true); cm.MapMember(c => c.RequestGroupedFieldList).SetIgnoreIfNull(true); cm.MapMember(c => c.Pumps).SetIgnoreIfNull(true); cm.MapMember(c => c.ChartConfig).SetIgnoreIfNull(true); cm.MapMember(c => c.GraphLayout).SetIgnoreIfNull(true); cm.MapMember(c => c.CardRotatingLayout).SetIgnoreIfNull(true); cm.MapMember(c => c.ChartConfigIdList).SetIgnoreIfNull(true); cm.MapMember(c => c.HomeConfig).SetIgnoreIfNull(true); cm.MapMember(c => c.HeaderConfig).SetIgnoreIfNull(true); cm.MapMember(c => c.DisplaySectionIdList).SetDefaultValue(new List()); cm.MapMember(c => c.Hospital).SetIgnoreIfNull(true); cm.MapMember(c => c.ColorConfig).SetDefaultValue(new ColorConfig()); cm.MapMember(c => c.FieldList).SetDefaultValue(new List()); cm.MapMember(c => c.GroupedFieldList).SetDefaultValue(new List()); cm.UnmapProperty(c => c.DisplaySectionList); // cm.UnmapProperty(c => c.CardConfig); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.Name).SetIgnoreIfNull(true); cm.MapMember(c => c.Names).SetIgnoreIfNull(true); cm.MapMember(c => c.Group).SetIgnoreIfNull(true); cm.MapMember(c => c.StartTimeShift).SetIgnoreIfNull(true); cm.MapMember(c => c.Max); cm.MapMember(c => c.Regularity) .SetIgnoreIfNull(true) .SetSerializer(new NullableSerializer( new EnumSerializer(BsonType.String))); cm.MapMember(c => c.Since) .SetDefaultValue(GroupedObservationEnum.Since.Last) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(c => c.Result) .SetIgnoreIfNull(true); //.SetSerializer(new EnumSerializer(BsonType.Array)); cm.MapMember(c => c.LabelList).SetIgnoreIfNull(true); }); } } }