public void CategorySeriesCreatesCategoryXAxisForString()
 {
     var dataSource = new NullPowerShellDataSource();
     dataSource.Data.Add(new SolidPSObjectBase(new PSObject(new {Label = "Test", Value = 123})));
     ChartSeriesViewModel viewModel = new ChartSeriesViewModel
                                          {
                                              LabelMemberPath = "Label",
                                              ValueMemberPath = "Value",
                                              DataSource = dataSource,
                                              EnableConfigureAxes = true
                                          };
     var axis = viewModel.XAxis;
     Assert.NotNull( axis );
     Assert.Equal( ChartAxisType.CategoryX, axis.AxisType );
 }
        private Series ConvertSeries(ChartSeriesViewModel series)
        {
            Series newSeries = null;
            var valueSeries = series.GetScaleForProperty(series.ValueMemberPath);
            var labelSeries = series.GetScaleForProperty(series.LabelMemberPath);

            switch (series.SeriesType)
            {
                case( ChartSeriesType.Column):
                {
                    newSeries = new ColumnSeries
                    {
                        ValueField = series.ValueMemberPath,
                        ItemsSource = series.DataSource.Data,
                        FillColor = valueSeries.Color.ToOxyColor(),
                        StrokeColor = valueSeries.Color.ToOxyColor(),
                        YAxisKey = valueSeries.Name,
                        XAxisKey = labelSeries.Name,
                    };

                    break;
                }
                case( ChartSeriesType.Line ):
                {
                    newSeries = new LineSeries
                    {
                        ItemsSource = series.DataSource.Data,
                        DataFieldX = series.XMemberPath,
                        DataFieldY = series.YMemberPath,
                        MarkerType = MarkerType.Circle,
                        Color = valueSeries.Color.ToOxyColor(),
                        MarkerFill = valueSeries.Color.ToOxyColor(),
                        YAxisKey = valueSeries.Name,
                        XAxisKey = labelSeries.Name,
                    };
                    break;
                }
                case( ChartSeriesType.Spline):
                {
                    newSeries = new LineSeries
                    {
                        ItemsSource = series.DataSource.Data,
                        DataFieldX = series.XMemberPath,
                        DataFieldY = series.YMemberPath,
                        MarkerType = MarkerType.Circle,
                        Color = valueSeries.Color.ToOxyColor(),
                        MarkerFill = valueSeries.Color.ToOxyColor(),
                        Smooth = true,
                        YAxisKey = valueSeries.Name,
                        XAxisKey = labelSeries.Name,
                    };
                    break;
                }
                case(ChartSeriesType.Area):
                {
                    newSeries = new AreaSeries
                    {
                        ItemsSource = series.DataSource.Data,
                        DataFieldX = series.XMemberPath,
                        DataFieldY = series.YMemberPath,
                        Color = valueSeries.Color.ToOxyColor(),
                        Fill = valueSeries.Color.ToOxyColor(),
                        MarkerFill = valueSeries.Color.ToOxyColor(),
                        YAxisKey = valueSeries.Name,
                        XAxisKey = labelSeries.Name,
                    };
                    break;
                }
                case( ChartSeriesType.SplineArea):
                {
                    newSeries = new AreaSeries
                    {
                        ItemsSource = series.DataSource.Data,
                        DataFieldX = series.XMemberPath,
                        DataFieldY = series.YMemberPath,
                        Color = valueSeries.Color.ToOxyColor(),
                        Fill = valueSeries.Color.ToOxyColor(),
                        MarkerFill = valueSeries.Color.ToOxyColor(),
                        Smooth = true,
                        YAxisKey = valueSeries.Name,
                        XAxisKey = labelSeries.Name,
                    };
                    break;
                }
                case(ChartSeriesType.Bubble):
                {
                    newSeries = new ScatterSeries
                    {
                        ItemsSource = series.DataSource.Data,
                        DataFieldX = series.XMemberPath,
                        DataFieldY = series.YMemberPath,
                        DataFieldSize = series.RadiusMemberPath,
                        MarkerFill = valueSeries.Color.ToOxyColor(),
                        MarkerType = MarkerType.Circle,
                        YAxisKey = valueSeries.Name,
                        XAxisKey = labelSeries.Name,
                    };
                    break;
                }
                case( ChartSeriesType.StepLine):
                {
                    newSeries = new StairStepSeries
                    {
                        ItemsSource = series.DataSource.Data,
                        DataFieldX = series.XMemberPath,
                        DataFieldY = series.YMemberPath,
                        Color = valueSeries.Color.ToOxyColor(),
                        YAxisKey = valueSeries.Name,
                        XAxisKey = labelSeries.Name,
                    };
                    break;
                }
                default:
                {
                    return null;
                }
            }

            newSeries.Title = series.Name;

            return newSeries;
        }
        public void PolarSeriesCreatesNumericAngleXAxisForInteger()
        {
            var dataSource = new NullPowerShellDataSource();
            dataSource.Data.Add(new SolidPSObjectBase(new PSObject(new { Label = 5, Value = 123 })));
            ChartSeriesViewModel viewModel = new ChartSeriesViewModel
            {
                SeriesType = ChartSeriesType.PolarArea,
                AngleMemberPath = "Label",
                RadiusMemberPath = "Value",

                DataSource = dataSource,
                EnableConfigureAxes = true
            };
            var axis = viewModel.XAxis;
            Assert.NotNull(axis);
            Assert.Equal(ChartAxisType.NumericAngle, axis.AxisType);
        }
 public void ScatterSeriesThrowsWhenXAxisIsString()
 {
     var dataSource = new NullPowerShellDataSource();
     dataSource.Data.Add(new SolidPSObjectBase(new PSObject(new {Label = "ASDF", Value = 123})));
     Assert.Throws<Exceptions.InvalidChartAxisTypeException>(() =>
                                                                 {
                                                                     ChartSeriesViewModel
                                                                         viewModel = new ChartSeriesViewModel
                                                                                         {
                                                                                             SeriesType =
                                                                                                 ChartSeriesType
                                                                                                 .Scatter,
                                                                                             XMemberPath =
                                                                                                 "Label",
                                                                                             YMemberPath =
                                                                                                 "Value",
                                                                                             DataSource =
                                                                                                 dataSource,
                                                                                             EnableConfigureAxes = true
                                                                                         };
                                                                 }
         );
 }