Exemple #1
0
        public void Refresh(List <BrandRanking> analysis)
        {
            if (analysis == null || analysis.Count == 0)
            {
                return;
            }

            analysis.ForEach(b =>
            {
                b.Percentage *= 100;
            });

            RankSeries      = new ObservableCollection <BrandRanking>(analysis.OrderByDescending(b => b.Percentage));
            TotalAmount     = analysis.Select(s => s.NetAmount ?? 0).Sum();
            TotalPercentage = analysis.Select(s => s.Percentage ?? 0).Sum();

            var ranks = analysis.ToList();

            if (ranks.Count > 10)
            {
                ranks = ranks.Take(10).ToList();
            }

            var data = new ChartViewConfig()
            {
                BackgroundColor = Color.White,
                ChartConfig     = new ChartConfig
                {
                    type = Wesley.ChartJS.ChartTypes.Bar,
                    data = ChartDataProvider.GetBrandRanking(ranks)
                }
            };

            ChartConfig = data;
        }
Exemple #2
0
        /// <summary>
        /// 品牌销量汇总
        /// </summary>
        /// <param name="app"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        private async Task <ChartViewConfig> BrandRankingPage_Chart(Module app, string title)
        {
            ChartViewConfig chartData = null;

            try
            {
                var result = await _reportingService.GetBrandRankingAsync(new[] { 0 }, Settings.UserId, DateTime.Now.AddDays(-15), DateTime.Now, this.ForceRefresh, new System.Threading.CancellationToken());

                if (result != null && result.Any())
                {
                    var series = result.ToList();
                    if (series.Count > 50)
                    {
                        series = result.Take(50).ToList();
                    }

                    chartData = new ChartViewConfig()
                    {
                        BackgroundColor = Color.White,
                        ChartConfig     = new ChartConfig
                        {
                            type = Wesley.ChartJS.ChartTypes.Bar,
                            data = ChartDataProvider.GetBrandRanking(series)
                        }
                    };
                }

                return(chartData);
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
                return(chartData);
            }
        }