示例#1
0
        public MainPage()
        {
            InitializeComponent();

            var brushes = new[] {
                Colors.Blue,
                Colors.White,
                Colors.Brown,
                Colors.Green,
                Colors.Red,
                Colors.Yellow,
                Colors.Yellow,
                Colors.Red,
                Colors.Blue,
                Colors.White
            };

            AppMenu = new Menu();

            _myDispatcherTimer.Tick       += Each_Tick;
            _client.GetDashBoardCompleted += (s, sv) =>
            {
                if (sv.Error != null)
                {
                    return;
                }
                if (sv.Result != null)
                {
                    NewbrandSalesData.Clear();
                }
                try
                {
                    foreach (var row in sv.Result.Where(x => x != sv.Result.FirstOrDefault()))
                    {
                        var x = row.Split(' ');
                        NewbrandSalesData.Add(new BrandSalesClass {
                            Brand = x.FirstOrDefault(), SalesValue = Convert.ToInt32(x.LastOrDefault()), FavoriteColor = new SolidColorBrush {
                                Color = Color.FromArgb((byte)sv.Result.IndexOf(row), 0, 0, (byte)sv.Result.IndexOf(row))
                            }
                        });
                    }
                }
                catch (Exception)
                {
                }

                try
                {
                    Brandsales.DataContext = NewbrandSalesData;
                    if (NewbrandSalesData != null)
                    {
                        Brandsales.Title = "Brand Sales " + NewbrandSalesData.Sum(x => x.SalesValue);
                    }
                    else
                    {
                        Brandsales.Title = "Brand Sales";
                    }
                }
                catch (Exception)
                {
                }
                try
                {
                    _interval = sv.dashBoardInterval;
                    NewbrandComparision.Clear();
                    foreach (var row in sv.brandComparison)
                    {
                        var x        = row.Split(' ');
                        var rowcount = sv.brandComparison.IndexOf(row);

                        var testColor = brushes[rowcount];

                        try
                        {
                            NewbrandComparision.Add(new BrandSalesClass {
                                Brand = x.FirstOrDefault(), SalesPercentage = Convert.ToInt32((x.ElementAt(1).Substring(0, 2))), SalesRatio = Convert.ToDouble(x.LastOrDefault()), FavoriteColor = new SolidColorBrush {
                                    Color = testColor
                                }
                            });
                        }
                        catch (Exception)
                        {
                            NewbrandComparision.Add(new BrandSalesClass {
                                Brand = x.FirstOrDefault(), SalesPercentage = Convert.ToInt32((x.ElementAt(1).Substring(0, 1))), SalesRatio = Convert.ToDouble(x.LastOrDefault()), FavoriteColor = new SolidColorBrush {
                                    Color = testColor
                                }
                            });
                        }
                    }
                }
                catch (Exception)
                {
                }
                var costOfGoodSoldList = new List <BrandSalesClass>();
                BrandGrossMargin.Clear();
                try
                {
                    foreach (var variable in sv.costOfGoodSoldList)
                    {
                        costOfGoodSoldList.Add(new BrandSalesClass
                        {
                            Brand      = variable.Brand,
                            SalesValue = (int)variable.NetSales,
                        });
                    }
                }
                catch (Exception)
                {
                }
                try
                {
                    foreach (var variable in sv.netSalesList)
                    {
                        var rowcount = sv.netSalesList.IndexOf(variable);

                        var testColor = brushes[rowcount];
                        var row       = new BrandSalesClass
                        {
                            Brand         = variable.Brand,
                            FavoriteColor = new SolidColorBrush {
                                Color = testColor
                            },
                            SalesValue = (int)variable.NetSales,
                        };
                        var brandSalesClass = costOfGoodSoldList.FirstOrDefault(x => x.Brand == variable.Brand);
                        if (brandSalesClass != null)
                        {
                            var dif = (variable.NetSales -
                                       brandSalesClass.SalesValue);
                            row.SalesPercentage = (int)((dif / variable.NetSales) * 100);
                        }
                        BrandGrossMargin.Add(row);
                    }
                }
                catch (Exception)
                {
                }
                try
                {
                    ((DataPointSeries)BrandRatio.Series[0]).ItemsSource = NewbrandComparision;
                }
                catch (Exception)
                {
                }
                try
                {
                    ((DataPointSeries)BrandPercentage.Series[0]).ItemsSource = NewbrandComparision;
                }
                catch (Exception)
                {
                }
                try
                {
                    ((DataPointSeries)BrandPercentage.Series[0]).ItemsSource = NewbrandComparision;
                }
                catch (Exception)
                {
                }
                try
                {
                    ((DataPointSeries)GrossMarginChart.Series[0]).ItemsSource = BrandGrossMargin;
                }
                catch (Exception)
                {
                }
                try
                {
                    ((DataPointSeries)GrossMarginChart.Series[1]).ItemsSource = BrandGrossMargin;
                }
                catch (Exception)
                {
                }


                _myDispatcherTimer.Interval = new TimeSpan(0, 0, _interval, 0);

                _myDispatcherTimer.Start();
            };
            _client.GetDashBoardAsync();
        }