Not implemented serialization array of type: System.DateTime[] - ASP.NET

Dec 4, 2013 at 5:30 PM
Hello all.

I'm trying create two series of objects[,] returning DateTime values, but I got this response:

"Not implemented serialization array of type: System.DateTime[]".

This is my code for generate the graph:
seriePrevisto.Data =
                     new Data(new object[,]
                        {
                            {grupoTrabalho.Select(x => x.DataInicioPrevista.Date).ToArray(), grupoTrabalho.Select(x => x.DataFimPrevista.Date).ToArray()}
                        });

            serieRealizado.Data =
                     new Data(new object[,]
                        {
                            {grupoTrabalho.Select(x => x.DataInicioRealizado.Date).ToArray(), grupoTrabalho.Select(x => x.DataFimRealizado.Date).ToArray()}
                        });

Highcharts chart = new Highcharts("chart")
                .InitChart(new Chart {Type = ChartTypes.Columnrange, Inverted = true})
                .SetTitle(new Title {Text = grupoTrabalho.First().NomeGrupoTrabalho})
                .SetSubtitle(new Subtitle {Text = "Previsto / Realizado"})
                .SetXAxis(new XAxis {Categories = grupoTrabalho.Select(x => x.NomeAtividade).ToArray()})
                .SetYAxis(new YAxis
                    {
                        DateTimeLabelFormats = new DateTimeLabel {Month = "%e. %b", Year = "%b"},
                        Type = AxisTypes.Datetime,
                        MinRange = 1
                    })
                .SetTooltip(new Tooltip {ValueSuffix = "", Enabled = false})
                .SetLegend(new Legend {Enabled = true})
                .SetPlotOptions(new PlotOptions
                    {
                        Columnrange = new PlotOptionsColumnrange
                            {
                                DataLabels = new PlotOptionsColumnrangeDataLabels
                                    {
                                        Enabled = true,
                                        Formatter = "function() { return Highcharts.dateFormat('%e. %b', this.y); }"
                                    }
                            }
                    }).SetSeries(new[] { serieRealizado, seriePrevisto });
Thanks,

José Corrêa.
Dec 4, 2013 at 9:49 PM
Edited Dec 4, 2013 at 9:51 PM
Hello again!

Well, i did the generation of the graph but i don't got it return the values.

I need help yet to return the values.

Below the new code and one image of the graph generated.
var grupoTrabalho = GrupoTrabalhoApplication.DadosGraficoGantt(x => x.IdGrupoTrabalho == id, "GrupoTrabalhoTarefa");

            var series = new List<Series>();

            var previsto = new List<object[,]>();
            var realizado = new List<object[,]>();
            
            realizado.AddRange(grupoTrabalho.Select(dados => new object[,] {{dados.DataInicioPrevista.Date, dados.DataFimPrevista.Date}}));
            previsto.AddRange(grupoTrabalho.Select(dados => new object[,] {{dados.DataInicioRealizado.Date, dados.DataFimRealizado.Date}}));

            series.Add(new Series
            {
                Name = "Previsto",
                Data = new Data(previsto.ToArray())
            });

            series.Add(new Series
                {
                    Name = "Realizado",
                    Data = new Data(realizado.ToArray())
                });

            Highcharts chart = new Highcharts("chart")
                .InitChart(new Chart {Type = ChartTypes.Columnrange, Inverted = true})
                .SetTitle(new Title {Text = grupoTrabalho.First().NomeGrupoTrabalho})
                .SetSubtitle(new Subtitle {Text = "Previsto / Realizado"})
                .SetXAxis(new XAxis {Categories = grupoTrabalho.Select(x => x.NomeAtividade).ToArray()})
                .SetYAxis(new YAxis
                    {
                        DateTimeLabelFormats = new DateTimeLabel {Month = "%e. %b", Year = "%b"},
                        Type = AxisTypes.Datetime,
                        MinRange = 1
                    })
                .SetTooltip(new Tooltip {ValueSuffix = "", Enabled = false})
                .SetLegend(new Legend {Enabled = true})
                .SetPlotOptions(new PlotOptions
                    {
                        Columnrange = new PlotOptionsColumnrange
                            {
                                DataLabels = new PlotOptionsColumnrangeDataLabels
                                    {
                                        Enabled = true,
                                        Formatter = "function() { return Highcharts.dateFormat('%e. %b', this.y); }"
                                    }
                            }
                    }).SetSeries(series.Select(x => new Series {Name = x.Name, Data = x.Data}).ToArray()
                    
                    );
   

            return View(chart);
Link of the image: http://tinypic.com/r/30dgqk2/5

Thanks,

José Corrêa.
Dec 5, 2013 at 4:23 PM
Edited Dec 5, 2013 at 4:25 PM
Problem solved.
var grupoTrabalho = GrupoTrabalhoApplication.DadosGraficoGantt(x => x.IdGrupoTrabalho == id, "GrupoTrabalhoTarefa");

            var series = new List<Series>();

            var previsto = new List<object[]>();
            var realizado = new List<object[]>();
            
            previsto.AddRange(grupoTrabalho.Select(dados => new object[] {dados.DataInicioPrevista.Date, dados.DataFimPrevista.Date}));
            realizado.AddRange(grupoTrabalho.Select(dados => new object[] {dados.DataInicioRealizado.Date, dados.DataFimRealizado.Date}));

            series.Add(new Series
                {
                    Name = "Realizado",
                    Data = new Data(realizado.ToArray())
                });

            series.Add(new Series
                {
                    Name = "Previsto",
                    Data = new Data(previsto.ToArray())
                });

            Highcharts chart = new Highcharts("chart")
                .InitChart(new Chart { Type = ChartTypes.Columnrange, Inverted = true })
                .SetTitle(new Title { Text = grupoTrabalho.First().NomeGrupoTrabalho })
                .SetSubtitle(new Subtitle { Text = "Previsto / Realizado" })
                .SetOptions(new GlobalOptions{Global = new Global{UseUTC = true}})
                .SetXAxis(new XAxis { Categories = grupoTrabalho.Select(x => x.NomeAtividade).ToArray() })
                .SetYAxis(new YAxis
                    {
                        DateTimeLabelFormats = new DateTimeLabel { Month = "%e. %b", Year = "%b" },
                        Type = AxisTypes.Datetime,
                        MinRange = 1
                    })
                .SetTooltip(new Tooltip { ValueSuffix = "", Enabled = false })
                .SetLegend(new Legend { Enabled = true })
                .SetPlotOptions(new PlotOptions
                    {
                        Columnrange = new PlotOptionsColumnrange
                            {
                                DataLabels = new PlotOptionsColumnrangeDataLabels
                                    {
                                        Enabled = true,
                                        Formatter = "function() { return Highcharts.dateFormat('%e. %b', this.y); }"
                                    }
                            }

                    }).SetSeries(series.Select(x => new Series { Name = x.Name, Data = x.Data }).ToArray()

                    );
   

            return View(chart);
Thanks for the help rhuodox! :)

Bye.
Marked as answer by rhuodox on 12/5/2013 at 8:23 AM