private void RefreshData(List <HotSaleRanking> analysis)
        {
            RankSeries           = new ObservableCollection <HotSaleRanking>(analysis);
            TotalSumReturnAmount = analysis.Select(s => s.TotalSumReturnAmount ?? 0).Sum();
            TotalSumNetAmount    = analysis.Select(s => s.TotalSumNetAmount ?? 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 = DCMS.ChartJS.ChartTypes.Bar,
                    data = ChartDataProvider.GetHotSalesRanking(ranks)
                }
            };

            ChartConfig = data;
        }
Exemple #2
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 #3
0
        public void Refresh(List <BusinessRanking> analysis)
        {
            RankSeries       = new ObservableCollection <BusinessRanking>(analysis);
            SaleAmount       = analysis.Select(s => s.SaleAmount).Sum();
            SaleReturnAmount = analysis.Select(s => s.SaleReturnAmount).Sum();
            NetAmount        = analysis.Select(s => s.NetAmount).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.GetSalesRanking(ranks)
                }
            };

            ChartConfig = data;
        }
Exemple #4
0
        private void RefreshData(List <BusinessVisitRank> analysis)
        {
            if (analysis == null)
            {
                return;
            }

            RankSeries = new ObservableCollection <BusinessVisitRank>(analysis);
            SubTotal   = analysis.Select(s => s.VisitedCount).Sum();
            Total      = analysis.Select(s => s.CustomerCount).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.GetCustomerVisitRank(ranks)
                }
            };

            ChartConfig = data;
        }
Exemple #5
0
        /// <summary>
        /// 热定排行榜
        /// </summary>
        /// <param name="app"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        private async Task <ChartViewConfig> HotOrderRankingPage_Chart(Module app, string title)
        {
            ChartViewConfig chartData = null;

            try
            {
                var result = await _reportingService.GetHotOrderRankingAsync(0, Settings.UserId, 0, 0, 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.GetHotOrderRanking(series)
                        }
                    };
                }
                return(chartData);
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
                return(chartData);
            }
        }
Exemple #6
0
        public void Refresh(List <CustomerRanking> analysis)
        {
            RankSeries = new ObservableCollection <CustomerRanking>(analysis);
            SubTotal   = analysis.Select(s => s.VisitSum).Sum();
            Total      = analysis.Select(s => s.NetAmount).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.GetCustomerRanking(ranks)
                }
            };

            ChartConfig = data;
        }
Exemple #7
0
        /// <summary>
        /// 新增客户分析
        /// </summary>
        /// <param name="app"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        private async Task <ChartViewConfig> NewCustomersPage_Chart(Module app, string title)
        {
            ChartViewConfig chartData = null;

            try
            {
                var result = await _reportingService.GetNewCustomerAnalysisAsync(Filter.BusinessUserId, this.ForceRefresh, new System.Threading.CancellationToken());

                if (result != null && result.ChartDatas != null)
                {
                    var series = result.ChartDatas.ToList();
                    if (series.Count == 0)
                    {
                        return(null);
                    }

                    chartData = new ChartViewConfig()
                    {
                        BackgroundColor = Color.White,
                        ChartConfig     = new ChartConfig
                        {
                            type = Wesley.ChartJS.ChartTypes.Line,
                            data = ChartDataProvider.GetNewCustomers(result)
                        }
                    };
                }
                return(chartData);
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
                return(chartData);
            }
        }
Exemple #8
0
        /// <summary>
        /// 客户活跃度
        /// </summary>
        /// <param name="app"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        private async Task <ChartViewConfig> CustomerActivityPage_Chart(Module app, string title)
        {
            ChartViewConfig chartData = null;

            try
            {
                var result = await _terminalService.GetCustomerActivityRankingAsync(Settings.UserId, 0, 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.Line,
                            data = ChartDataProvider.GetCustomerActivity(series),
                        }
                    };
                }
                return(chartData);
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
                return(chartData);
            }
        }
Exemple #9
0
        /// <summary>
        /// 客户拜访分析
        /// </summary>
        /// <param name="app"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        private async Task <ChartViewConfig> VisitingRatePage_Chart(Module app, string title)
        {
            ChartViewConfig chartData = null;

            try
            {
                var result = await _reportingService.GetCustomerVistAnalysisAsync(Settings.UserId, this.ForceRefresh, new System.Threading.CancellationToken());

                if (result != null)
                {
                    chartData = new ChartViewConfig()
                    {
                        BackgroundColor = Color.White,
                        ChartConfig     = new ChartConfig
                        {
                            type = Wesley.ChartJS.ChartTypes.Pie,
                            data = ChartDataProvider.GetVisitingRate(result)
                        }
                    };
                }
                return(chartData);
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
                return(chartData);
            }
        }
Exemple #10
0
        private void RefreshData(List <CostProfitRanking> analysis)
        {
            RankSeries          = new ObservableCollection <CostProfitRanking>(analysis);
            TotalSumNetQuantity = analysis.Select(s => s.TotalSumNetQuantity).Sum();
            TotalSumNetAmount   = analysis.Select(s => s.TotalSumNetAmount).Sum();
            TotalSumProfit      = analysis.Select(s => s.TotalSumProfit).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.GetSalesProfitRanking(ranks)
                }
            };

            ChartConfig = data;
        }
        private void Page_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            chartDataProvider = new ChartDataProvider();
            ChartData chartData = chartDataProvider.GetChartData();

            ScatterPoint[] malePoints = chartData.MaleScatterPoints
                                        .Select(p => new ScatterPoint(p.Percentage, p.Age, p.Weight))
                                        .ToArray();

            ScatterPoint[] femalePoints = chartData.FemaleScatterPoints
                                          .Select(p => new ScatterPoint(p.Percentage, p.Age, p.Weight))
                                          .ToArray();

            SeriesCollection = new SeriesCollection
            {
                new ScatterSeries
                {
                    Title                 = "Férfi",
                    PointGeometry         = DefaultGeometries.Circle,
                    MinPointShapeDiameter = 15,
                    MaxPointShapeDiameter = 45,
                    Values                = new ChartValues <ScatterPoint>(malePoints)
                },
                new ScatterSeries
                {
                    Title                 = "Nő",
                    PointGeometry         = DefaultGeometries.Triangle,
                    MinPointShapeDiameter = 15,
                    MaxPointShapeDiameter = 45,
                    Values                = new ChartValues <ScatterPoint>(femalePoints)
                },
            };
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SeriesCollection)));
        }
Exemple #12
0
        /// <summary>
        /// 销量走势图
        /// </summary>
        /// <param name="app"></param>
        /// <param name="title"></param>
        /// <returns></returns>
        private async Task <ChartViewConfig> SaleTrendChatPage_Chart(Module app, string title)
        {
            ChartViewConfig chartData = null;

            try
            {
                var result = await _reportingService.GetSaleTrendingAsync("day", 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 = DCMS.ChartJS.ChartTypes.Line,
                            data = ChartDataProvider.GetSaleTrendChat(series),
                        }
                    };
                }
                return(chartData);
            }
            catch (Exception ex)
            {
                Crashes.TrackError(ex);
                return(chartData);
            }
        }
Exemple #13
0
        public void Refresh(List <UnSaleRanking> series)
        {
            RankSeries           = new ObservableCollection <UnSaleRanking>(series);
            TotalSumReturnAmount = series.Select(s => s.TotalSumReturnAmount).Sum();
            TotalSumNetAmount    = series.Select(s => s.TotalSumNetAmount).Sum();


            var ranks = series.ToList();

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

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

            ChartConfig = data;
        }
Exemple #14
0
        private void RefreshData(List <SaleTrending> series)
        {
            int    i      = 0;
            Random random = new Random();

            if (series == null || series.Count == 0)
            {
                for (i = 1; i <= DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); i++)
                {
                    series.Add(new SaleTrending()
                    {
                        DateType = "DAY", NetAmount = random.Next(200), SaleAmount = random.Next(200), SaleDateName = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd"), SaleReturnAmount = random.Next(200), SaleDate = DateTime.Now.AddDays(i)
                    });
                }
            }

            string[] weekdays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
            series.ForEach(d =>
            {
                if ("DAY" == d.DateType.ToUpper())
                {
                    d.SaleDateName = d.SaleDate.ToString("yyyy/MM/dd");
                }
                else if ("WEEK" == d.DateType.ToUpper())
                {
                    d.SaleDateName = weekdays[Convert.ToInt32(d.SaleDate.DayOfWeek)];
                }
                else if ("MONTH" == d.DateType.ToUpper())
                {
                    d.SaleDateName = d.SaleDate.ToString("yyyy-MM");
                }
            });

            RankSeries  = new ObservableCollection <SaleTrending>(series);
            TotalAmount = RankSeries.Select(s => s.NetAmount).Sum();

            var ranks = series.ToList();

            if (ranks.Count > 10)
            {
                ranks = ranks.Take(10).ToList();
            }
            var data = new ChartViewConfig()
            {
                BackgroundColor = Color.White,
                ChartConfig     = new ChartConfig
                {
                    type = DCMS.ChartJS.ChartTypes.Line,
                    data = ChartDataProvider.GetSaleTrendChat(ranks),
                }
            };

            ChartConfig = data;
        }
Exemple #15
0
        public void Refresh(List <CustomerActivityRanking> analysis)
        {
            RankSeries = new ObservableCollection <CustomerActivityRanking>(analysis);

            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.Line,
                    data = ChartDataProvider.GetCustomerActivity(ranks),
                }
            };

            ChartConfig = data;
        }