using adas_core.Domain.Enums; 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 GraphMapContributor : IEntityMapContributor { public void RegisterMaps() { if (!BsonClassMap.IsClassMapRegistered(typeof(GraphLayout))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.Layout).SetIgnoreIfNull(true); cm.MapMember(c => c.ObservationTitle).SetIgnoreIfNull(true); cm.MapMember(c => c.Name).SetIgnoreIfNull(true); cm.MapMember(c => c.GraphConf).SetIgnoreIfNull(true); cm.MapMember(c => c.ObservationName).SetIgnoreIfNull(true); }); if (!BsonClassMap.IsClassMapRegistered(typeof(ChartSettings))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.LegendLayoutConfig).SetIgnoreIfNull(true); cm.MapMember(c => c.LegendGrowPriority).SetIgnoreIfNull(true); cm.MapMember(c => c.ChartGrowPriority).SetIgnoreIfNull(true); }); if (!BsonClassMap.IsClassMapRegistered(typeof(ChartConfig))) { BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapIdMember(c => c.Id).SetElementName("_id"); cm.MapMember(c => c.BaseConfig).SetDefaultValue(new ChartBaseConfig()); cm.MapMember(c => c.AxesConfig).SetDefaultValue(new List()); cm.MapMember(c => c.SeriesConfig).SetDefaultValue(new List()); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.Title).SetDefaultValue(string.Empty); cm.MapMember(c => c.Top).SetDefaultValue("7%"); cm.MapMember(c => c.Right).SetDefaultValue("7%"); cm.MapMember(c => c.Bottom).SetDefaultValue("7%"); cm.MapMember(c => c.Left).SetDefaultValue("7%"); cm.MapMember(c => c.Group).SetDefaultValue(string.Empty); cm.MapMember(c => c.Name).SetDefaultValue(string.Empty); cm.MapMember(c => c.BorderWidth).SetDefaultValue(1); cm.MapMember(c => c.BorderColor).SetDefaultValue(string.Empty); cm.MapMember(c => c.ShowLegend).SetDefaultValue(false); cm.MapMember(c => c.ShowGrid).SetDefaultValue(false); cm.MapMember(c => c.NumValues).SetIgnoreIfNull(true); cm.MapMember(c => c.BaselineOffset).SetIgnoreIfNull(true); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(a => a.Type) .SetSerializer(new EnumSerializer(BsonType.String)) .SetDefaultValue(DisplayConfigEnums.AxisType.Value); cm.MapMember(a => a.KeyName).SetIgnoreIfNull(true); cm.MapMember(a => a.Position) .SetSerializer(new EnumSerializer(BsonType.String)) .SetDefaultValue(DisplayConfigEnums.AxisPosition.Left); cm.MapMember(a => a.Min).SetIgnoreIfNull(true); cm.MapMember(a => a.Max).SetIgnoreIfNull(true); cm.MapMember(a => a.AxisLine).SetIgnoreIfNull(true); cm.MapMember(a => a.AxisTick).SetIgnoreIfNull(true); cm.MapMember(a => a.AxisLabel).SetIgnoreIfNull(true); cm.MapMember(a => a.Silent).SetDefaultValue(true); cm.MapMember(a => a.LabelFormat) .SetSerializer(new EnumSerializer(BsonType.String)) .SetDefaultValue(DisplayConfigEnums.LabelFormat.Hour); cm.MapMember(a => a.Offset).SetDefaultValue(0.0); cm.MapMember(a => a.CustomLabels).SetDefaultValue(new List()); cm.MapMember(a => a.SortLabels).SetDefaultValue(false); cm.MapMember(a => a.Show).SetDefaultValue(true); cm.MapMember(a => a.Regularity) .SetSerializer(new EnumSerializer(BsonType.String)) .SetDefaultValue(GroupedObservationEnum.Regularity.Hour); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(a => a.Show).SetIgnoreIfNull(true); cm.MapMember(a => a.Interval).SetIgnoreIfNull(true); cm.MapMember(a => a.Length).SetIgnoreIfNull(true); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(a => a.Show).SetIgnoreIfNull(true); cm.MapMember(a => a.Color).SetIgnoreIfNull(true); cm.MapMember(a => a.Margin).SetIgnoreIfNull(true); cm.MapMember(a => a.FontSize).SetIgnoreIfNull(true); cm.MapMember(a => a.Silent).SetIgnoreIfNull(true); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(a => a.Color).SetIgnoreIfNull(true); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(a => a.Show).SetIgnoreIfNull(true); cm.MapMember(a => a.LineStyle).SetIgnoreIfNull(true); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); // cm.SetIsRootClass(true); // cm.AddKnownType(typeof(CandlestickSeriesConfig)); cm.MapMember(s => s.Key).SetElementName("key"); cm.MapMember(s => s.Color).SetElementName("color"); cm.MapMember(s => s.Type) .SetDefaultValue(DisplayConfigEnums.SeriesType.Line) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(s => s.SourceType) .SetDefaultValue(DisplayConfigEnums.SourceType.Obs) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(s => s.AxesNames) .SetDefaultValue(new List()); cm.MapMember(s => s.ShowSymbol).SetDefaultValue(false); cm.MapMember(s => s.ShowColorOnLegend).SetDefaultValue(false); cm.MapMember(s => s.ShowOnLegend).SetDefaultValue(true); cm.MapMember(s => s.Values) .SetDefaultValue(GroupedObservationEnum.Result.Last) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(s => s.MarkerIcon) .SetDefaultValue(DisplayConfigEnums.MarkerIcon.None) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(s => s.VisualMap).SetIgnoreIfNull(true); cm.MapMember(l => l.LineWidth).SetDefaultValue(2); cm.MapMember(l => l.LineStyle).SetDefaultValue("solid"); cm.MapMember(v => v.Marker) .SetDefaultValue(DisplayConfigEnums.MarkerIcon.Kangaroo) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(a => a.AboveBaselineColor).SetIgnoreIfDefault(true); cm.MapMember(a => a.BelowBaselineColor).SetIgnoreIfDefault(true); cm.MapMember(a => a.CandleKeyList).SetIgnoreIfDefault(true); cm.MapMember(p => p.LineType).SetIgnoreIfNull(true); }); // BsonClassMap.RegisterClassMap(cm => // { // cm.AutoMap(); // cm.MapMember(l => l.LineWidth).SetDefaultValue(2); // cm.MapMember(l => l.LineStyle).SetDefaultValue("solid"); // }); // BsonClassMap.RegisterClassMap(cm => // { // cm.AutoMap(); // cm.MapMember(v => v.Marker) // .SetDefaultValue(DisplayConfigEnums.MarkerIcon.Kangaroo) // .SetSerializer(new EnumSerializer(BsonType.String)); // }); // BsonClassMap.RegisterClassMap(cm => // { // cm.AutoMap(); // cm.MapMember(a => a.AboveBaselineColor).SetIgnoreIfDefault(true); // cm.MapMember(a => a.BelowBaselineColor).SetIgnoreIfDefault(true); // }); // BsonClassMap.RegisterClassMap(cm => // { // cm.AutoMap(); // cm.MapMember(a => a.CandleKeyList).SetIgnoreIfDefault(true); // }); // if (!BsonClassMap.IsClassMapRegistered(typeof(LineSeriesConfig))) // { // BsonClassMap.RegisterClassMap(cm => // { // cm.AutoMap(); // cm.MapMember(p => p.LineStyle).SetDefaultValue("solid"); // cm.MapMember(p => p.LineWidth).SetDefaultValue(2); // cm.MapMember(p => p.LineType).SetIgnoreIfNull(true); // }); // } BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(a => a.Key).SetIgnoreIfDefault(true); cm.MapMember(a => a.CandleValueType) .SetSerializer( new NullableSerializer(new EnumSerializer(BsonType.String))); }); BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(v => v.Show).SetDefaultValue(false); cm.MapMember(v => v.Dimension).SetDefaultValue(0); cm.MapMember(v => v.SerieKey).SetIgnoreIfNull(true); cm.MapMember(v => v.Pieces).SetDefaultValue(new List()); }); } if (!BsonClassMap.IsClassMapRegistered(typeof(LegendLayoutConfig))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.Rows).SetIgnoreIfNull(true); }); if (!BsonClassMap.IsClassMapRegistered(typeof(LegendLayoutRow))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.GrowPriority).SetIgnoreIfNull(true); cm.MapMember(c => c.Columns).SetIgnoreIfNull(true); }); if (!BsonClassMap.IsClassMapRegistered(typeof(LegendLayoutColumn))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.Key).SetIgnoreIfNull(true); cm.MapMember(c => c.GrowPriority).SetIgnoreIfNull(true); cm.MapMember(c => c.Label).SetIgnoreIfNull(true); }); if (!BsonClassMap.IsClassMapRegistered(typeof(LegendLabel))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(c => c.Name).SetIgnoreIfNull(true); cm.MapMember(c => c.ColorLabel).SetIgnoreIfNull(true); cm.MapMember(c => c.ColorIcon).SetIgnoreIfNull(true); cm.MapMember(c => c.ShowSymbol).SetIgnoreIfNull(true); cm.MapMember(c => c.IconType).SetIgnoreIfNull(true) .SetSerializer(new NullableSerializer( new EnumSerializer(BsonType.String))); }); if (!BsonClassMap.IsClassMapRegistered(typeof(Piece))) BsonClassMap.RegisterClassMap(cm => { cm.AutoMap(); cm.MapMember(p => p.Opacity).SetIgnoreIfNull(true); cm.MapMember(p => p.LineType) .SetDefaultValue(DisplayConfigEnums.LineType.Solid) .SetSerializer(new EnumSerializer(BsonType.String)); cm.MapMember(p => p.Color).SetIgnoreIfNull(true); cm.MapMember(p => p.Symbol).SetIgnoreIfNull(true); cm.MapMember(p => p.SymbolSize).SetIgnoreIfNull(true); cm.MapMember(p => p.Eq).SetIgnoreIfNull(true); cm.MapMember(p => p.Neq).SetIgnoreIfNull(true); cm.MapMember(p => p.Gt).SetIgnoreIfNull(true); cm.MapMember(p => p.Lt).SetIgnoreIfNull(true); cm.MapMember(p => p.Gte).SetIgnoreIfNull(true); cm.MapMember(p => p.Lte).SetIgnoreIfNull(true); }); } }