Пример #1
0
        private Chart GetAccountStatusChart()
        {
            _logger.LogTrace("Generating chart for account in each status.");
            var colorMapping = new Dictionary <AccountStatus, ChartColor> {
                { AccountStatus.Banned, ChartColor.FromHexString("#dc3545") },
                { AccountStatus.Disabled, ChartColor.FromHexString("#6c757d") },
                { AccountStatus.Ok, ChartColor.FromHexString("#28a745") },
                { AccountStatus.LockedOut, ChartColor.FromHexString("#ffc107") },
                { AccountStatus.PendingVerification, ChartColor.FromHexString("#17a2b8") }
            };
            var accountStatusData = _reportRepo.GetAccountStatusCount(true).ToList();
            var colors            = accountStatusData.Select(x => colorMapping[x.Status]).ToList();

            return(new Chart {
                Type = Enums.ChartType.Pie,
                Data = new Data {
                    Labels = accountStatusData.Select(x => Enum.GetName(typeof(AccountStatus), x.Status)).ToList(),
                    Datasets = new List <Dataset> {
                        new PieDataset {
                            Label = "Account Statuses (With Empty)",
                            BackgroundColor = colors,
                            HoverBackgroundColor = colors,
                            Data = accountStatusData.Select(x => (double)x.Count).ToList()
                        }
                    }
                }
            });
        }