265 lines
13 KiB
C#
265 lines
13 KiB
C#
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<GraphLayout>(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<ChartSettings>(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<ChartConfig>(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<AxisConfig>());
|
|
cm.MapMember(c => c.SeriesConfig).SetDefaultValue(new List<SeriesConfigBase>());
|
|
});
|
|
|
|
BsonClassMap.RegisterClassMap<ChartBaseConfig>(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<AxisConfig>(cm =>
|
|
{
|
|
cm.AutoMap();
|
|
cm.MapMember(a => a.Type)
|
|
.SetSerializer(new EnumSerializer<DisplayConfigEnums.AxisType>(BsonType.String))
|
|
.SetDefaultValue(DisplayConfigEnums.AxisType.Value);
|
|
cm.MapMember(a => a.KeyName).SetIgnoreIfNull(true);
|
|
cm.MapMember(a => a.Position)
|
|
.SetSerializer(new EnumSerializer<DisplayConfigEnums.AxisPosition>(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<DisplayConfigEnums.LabelFormat>(BsonType.String))
|
|
.SetDefaultValue(DisplayConfigEnums.LabelFormat.Hour);
|
|
cm.MapMember(a => a.Offset).SetDefaultValue(0.0);
|
|
cm.MapMember(a => a.CustomLabels).SetDefaultValue(new List<string>());
|
|
cm.MapMember(a => a.SortLabels).SetDefaultValue(false);
|
|
cm.MapMember(a => a.Show).SetDefaultValue(true);
|
|
cm.MapMember(a => a.Regularity)
|
|
.SetSerializer(new EnumSerializer<GroupedObservationEnum.Regularity>(BsonType.String))
|
|
.SetDefaultValue(GroupedObservationEnum.Regularity.Hour);
|
|
});
|
|
|
|
|
|
BsonClassMap.RegisterClassMap<AxisTick>(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<AxisLabel>(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<AxisLineStyle>(cm =>
|
|
{
|
|
cm.AutoMap();
|
|
cm.MapMember(a => a.Color).SetIgnoreIfNull(true);
|
|
});
|
|
BsonClassMap.RegisterClassMap<AxisLine>(cm =>
|
|
{
|
|
cm.AutoMap();
|
|
cm.MapMember(a => a.Show).SetIgnoreIfNull(true);
|
|
cm.MapMember(a => a.LineStyle).SetIgnoreIfNull(true);
|
|
});
|
|
BsonClassMap.RegisterClassMap<SeriesConfigBase>(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<DisplayConfigEnums.SeriesType>(BsonType.String));
|
|
cm.MapMember(s => s.SourceType)
|
|
.SetDefaultValue(DisplayConfigEnums.SourceType.Obs)
|
|
.SetSerializer(new EnumSerializer<DisplayConfigEnums.SourceType>(BsonType.String));
|
|
cm.MapMember(s => s.AxesNames)
|
|
.SetDefaultValue(new List<string>());
|
|
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<GroupedObservationEnum.Result>(BsonType.String));
|
|
cm.MapMember(s => s.MarkerIcon)
|
|
.SetDefaultValue(DisplayConfigEnums.MarkerIcon.None)
|
|
.SetSerializer(new EnumSerializer<DisplayConfigEnums.MarkerIcon>(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<DisplayConfigEnums.MarkerIcon>(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<LineSeriesConfig>(cm =>
|
|
// {
|
|
// cm.AutoMap();
|
|
// cm.MapMember(l => l.LineWidth).SetDefaultValue(2);
|
|
// cm.MapMember(l => l.LineStyle).SetDefaultValue("solid");
|
|
// });
|
|
// BsonClassMap.RegisterClassMap<VerticalMarkerSeriesConfig>(cm =>
|
|
// {
|
|
// cm.AutoMap();
|
|
// cm.MapMember(v => v.Marker)
|
|
// .SetDefaultValue(DisplayConfigEnums.MarkerIcon.Kangaroo)
|
|
// .SetSerializer(new EnumSerializer<DisplayConfigEnums.MarkerIcon>(BsonType.String));
|
|
// });
|
|
// BsonClassMap.RegisterClassMap<AreaSeriesConfig>(cm =>
|
|
// {
|
|
// cm.AutoMap();
|
|
// cm.MapMember(a => a.AboveBaselineColor).SetIgnoreIfDefault(true);
|
|
// cm.MapMember(a => a.BelowBaselineColor).SetIgnoreIfDefault(true);
|
|
// });
|
|
// BsonClassMap.RegisterClassMap<CandlestickSeriesConfig>(cm =>
|
|
// {
|
|
// cm.AutoMap();
|
|
// cm.MapMember(a => a.CandleKeyList).SetIgnoreIfDefault(true);
|
|
// });
|
|
// if (!BsonClassMap.IsClassMapRegistered(typeof(LineSeriesConfig)))
|
|
// {
|
|
// BsonClassMap.RegisterClassMap<LineSeriesConfig>(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<Candle>(cm =>
|
|
{
|
|
cm.AutoMap();
|
|
cm.MapMember(a => a.Key).SetIgnoreIfDefault(true);
|
|
cm.MapMember(a => a.CandleValueType)
|
|
.SetSerializer(
|
|
new NullableSerializer<CandleValueType>(new EnumSerializer<CandleValueType>(BsonType.String)));
|
|
});
|
|
|
|
BsonClassMap.RegisterClassMap<VisualMap>(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<Piece>());
|
|
});
|
|
}
|
|
|
|
if (!BsonClassMap.IsClassMapRegistered(typeof(LegendLayoutConfig)))
|
|
BsonClassMap.RegisterClassMap<LegendLayoutConfig>(cm =>
|
|
{
|
|
cm.AutoMap();
|
|
cm.MapMember(c => c.Rows).SetIgnoreIfNull(true);
|
|
});
|
|
|
|
if (!BsonClassMap.IsClassMapRegistered(typeof(LegendLayoutRow)))
|
|
BsonClassMap.RegisterClassMap<LegendLayoutRow>(cm =>
|
|
{
|
|
cm.AutoMap();
|
|
cm.MapMember(c => c.GrowPriority).SetIgnoreIfNull(true);
|
|
cm.MapMember(c => c.Columns).SetIgnoreIfNull(true);
|
|
});
|
|
|
|
if (!BsonClassMap.IsClassMapRegistered(typeof(LegendLayoutColumn)))
|
|
BsonClassMap.RegisterClassMap<LegendLayoutColumn>(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<LegendLabel>(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<DisplayConfigEnums.ELegendIconType>(
|
|
new EnumSerializer<DisplayConfigEnums.ELegendIconType>(BsonType.String)));
|
|
});
|
|
|
|
if (!BsonClassMap.IsClassMapRegistered(typeof(Piece)))
|
|
BsonClassMap.RegisterClassMap<Piece>(cm =>
|
|
{
|
|
cm.AutoMap();
|
|
cm.MapMember(p => p.Opacity).SetIgnoreIfNull(true);
|
|
cm.MapMember(p => p.LineType)
|
|
.SetDefaultValue(DisplayConfigEnums.LineType.Solid)
|
|
.SetSerializer(new EnumSerializer<DisplayConfigEnums.LineType>(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);
|
|
});
|
|
}
|
|
} |