Exemple #1
0
        public PieChart MapToPieChart(List <IndustryFinance> listIndustryFinance)
        {
            var chart = new PieChart();

            chart.datasets = new List <PieChartDataset>();
            chart.labels   = new List <string>();
            var pcd = new PieChartDataset();

            pcd.data                 = new List <int>();
            pcd.backgroundColor      = new List <string>();
            pcd.hoverBackgroundColor = new List <string>();

            foreach (IndustryFinance detail in listIndustryFinance)
            {
                pcd.data.Add(detail.Total);
                pcd.backgroundColor.Add(detail.ChartColor);
                pcd.hoverBackgroundColor.Add(detail.HoverColor);
                chart.labels.Add(detail.IndustryName);
            }
            chart.datasets.Add(pcd);
            return(chart);
        }
Exemple #2
0
        public async Task RefreshChartData()
        {
            IEnumerable <DashboardChartData> newDatas = await GenerateChartDatas.Invoke();

            await Chart.Clear();

            await Chart.AddLabels(newDatas.Select(x => x.Label).ToArray());

            List <string> colors = new List <string>();

            for (int i = 0; i < newDatas.Count(); i++)
            {
                string sliceColor = null;
                if (i < 9)
                {
                    sliceColor = SliceColorGenerator?.Invoke(i);
                }

                if (!string.IsNullOrWhiteSpace(sliceColor))
                {
                    colors.Add(sliceColor);
                }
                else
                {
                    colors.Add(DEFAULT_SLICE_COLOR);
                }
            }

            PieChartDataset <long> newChartDataset = new PieChartDataset <long>()
            {
                Data            = newDatas.Select(x => x.Value).ToList(),
                BackgroundColor = colors,
                BorderColor     = colors
            };

            CurrentDataset = newChartDataset;
            await Chart.AddDatasetsAndUpdate(newChartDataset);
        }