Skip to content

Commit 49a579c

Browse files
committed
Finish POC C# API for Chart.Scatter
1 parent 8580265 commit 49a579c

File tree

3 files changed

+35
-25
lines changed

3 files changed

+35
-25
lines changed

src/Plotly.NET.CSharp/ChartAPI/Chart2D.cs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static int Foo<T1,T2,T3>(
1818
)
1919
where T1 : IConvertible
2020
where T2 : IConvertible
21-
where T3 : IConvertible =>
21+
where T3 : class, IConvertible =>
2222
Plotly.NET.Chart2D.Chart.Foo<T1, T2, T3>(
2323
notopt: notopt,
2424
opt1: Helpers.ToOption<IEnumerable<T2>>(opt1),
@@ -94,38 +94,38 @@ public static GenericChart.GenericChart Scatter<XType,YType,TextType>(
9494
)
9595
where XType : IConvertible
9696
where YType : IConvertible
97-
where TextType : IConvertible
97+
where TextType : class, IConvertible
9898
=>
9999
Plotly.NET.Chart2D.Chart.Scatter(
100100
x: x,
101101
y: y,
102102
mode: mode,
103-
Name: Name,
104-
ShowLegend: ShowLegend,
105-
Opacity: Opacity,
103+
Name: Helpers.ToOption(Name),
104+
ShowLegend: Helpers.ToOption(ShowLegend),
105+
Opacity: Helpers.ToOption(Opacity),
106106
MultiOpacity: Helpers.ToOption(MultiOpacity),
107107
Text: Helpers.ToOption(Text),
108108
MultiText: Helpers.ToOption(MultiText),
109-
TextPosition: TextPosition,
109+
TextPosition: Helpers.ToOption(TextPosition),
110110
MultiTextPosition: Helpers.ToOption(MultiTextPosition),
111-
MarkerColor: MarkerColor,
112-
MarkerColorScale: MarkerColorScale,
113-
MarkerOutline: MarkerOutline,
114-
MarkerSymbol: MarkerSymbol,
111+
MarkerColor: Helpers.ToOption(MarkerColor),
112+
MarkerColorScale: Helpers.ToOption(MarkerColorScale),
113+
MarkerOutline: Helpers.ToOption(MarkerOutline),
114+
MarkerSymbol: Helpers.ToOption(MarkerSymbol),
115115
MultiMarkerSymbol: Helpers.ToOption(MultiMarkerSymbol),
116-
Marker: Marker,
117-
LineColor: LineColor,
118-
LineColorScale: LineColorScale,
119-
LineWidth: LineWidth,
120-
LineDash: LineDash,
121-
Line: Line,
122-
StackGroup: StackGroup,
123-
Orientation: Orientation,
124-
GroupNorm: GroupNorm,
125-
Fill: Fill,
126-
FillColor: FillColor,
127-
UseWebGL: UseWebGL,
128-
UseDefaults: UseDefaults
116+
Marker: Helpers.ToOption(Marker),
117+
LineColor: Helpers.ToOption(LineColor),
118+
LineColorScale: Helpers.ToOption(LineColorScale),
119+
LineWidth: Helpers.ToOption(LineWidth),
120+
LineDash: Helpers.ToOption(LineDash),
121+
Line: Helpers.ToOption(Line),
122+
StackGroup: Helpers.ToOption(StackGroup),
123+
Orientation: Helpers.ToOption(Orientation),
124+
GroupNorm: Helpers.ToOption(GroupNorm),
125+
Fill: Helpers.ToOption(Fill),
126+
FillColor: Helpers.ToOption(FillColor),
127+
UseWebGL: Helpers.ToOption(UseWebGL),
128+
UseDefaults: Helpers.ToOption(UseDefaults)
129129
);
130130
};
131131
}

src/Plotly.NET.CSharp/Helpers.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,9 @@ namespace Plotly.NET.CSharp
1010
{
1111
static class Helpers {
1212
static internal Microsoft.FSharp.Core.FSharpOption<T> ToOption<T>(this T? thing) => thing is null ? Microsoft.FSharp.Core.FSharpOption<T>.None : new(thing);
13+
static internal Microsoft.FSharp.Core.FSharpOption<bool> ToOption(this bool? thing) => thing is null ? Microsoft.FSharp.Core.FSharpOption<bool>.None : new((bool)thing);
14+
static internal Microsoft.FSharp.Core.FSharpOption<string> ToOption(this string? thing) => thing is null ? Microsoft.FSharp.Core.FSharpOption<string>.None : new((string)thing);
15+
static internal Microsoft.FSharp.Core.FSharpOption<double> ToOption(this double? thing) => thing is null ? Microsoft.FSharp.Core.FSharpOption<double>.None : new((double)thing);
16+
static internal Microsoft.FSharp.Core.FSharpOption<int> ToOption(this int? thing) => thing is null ? Microsoft.FSharp.Core.FSharpOption<int>.None : new((int)thing);
1317
}
1418
}

tests/Plotly.NET.Tests.CSharpConsole/Program.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,17 @@ class Program
99
{
1010
static void Main(string[] args)
1111
{
12-
Plotly.NET.CSharp.ChartAPI.Chart2D.Scatter(
12+
Plotly.NET.CSharp.ChartAPI.Chart2D.Scatter<int,int,string>(
1313
x: new int [] { 1, 2 },
1414
y: new int [] { 1, 2 },
1515
mode: StyleParam.Mode.Markers
16-
);
16+
).Show();
17+
18+
Chart2D.Chart.Scatter<int,int,string> (
19+
x: new int[] { 1, 2 },
20+
y: new int[] { 1, 2 },
21+
mode: StyleParam.Mode.Markers
22+
).Show();
1723
}
1824
static void Main2(string[] args)
1925
{

0 commit comments

Comments
 (0)