Esempio n. 1
0
        private async void DataGridPriceDynamic_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            DataGrid          dgv   = (DataGrid)sender;
            PriceDynamicModel model = (PriceDynamicModel)dgv.SelectedItem;

            await GetUrlAsync(model.Code);

            //MessageBox.Show(model.Code.ToString());
        }
Esempio n. 2
0
        private void DataGridPriceDynamic_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            DataGrid          dgv   = (DataGrid)sender;
            PriceDynamicModel model = (PriceDynamicModel)dgv.SelectedItem;

            MainChart.Model.Series.Clear();
            MainChart.Model.Axes.Clear();
            MainChart.Model.Title = "Товар не выбран";
            MainChart.Model.InvalidatePlot(true);

            if (model != null)
            {
                bool isDaily = (bool)CheckBoxChoosenDaily.IsChecked;


                PropertyInfo[] props = model.GetType().GetProperties(BindingFlags.Public |
                                                                     BindingFlags.NonPublic |
                                                                     BindingFlags.Instance).OrderBy(x => x.Name).ToArray();

                List <int> prices = new List <int>();

                foreach (PropertyInfo item in props)
                {
                    if (item.Name.Contains("Date") && item.Name.Length > 4 && item.Name.Length < 7)
                    {
                        try
                        {
                            int?a = (int)item.GetValue(model);
                            prices.Add(a ?? 0);
                        }
                        catch (Exception)
                        {
                        }
                    }
                }

                List <DateTime> dates = dbLoader.GetTopStatistic(isDaily, prices.Count).Select(x => x.CreationDate).ToList();

                if (dates.Count != 0 && dates.Count == prices.Count)
                {
                    MainChart.Model.Axes.Add(new DateTimeAxis {
                        Position = AxisPosition.Bottom, Minimum = DateTimeAxis.ToDouble(dates.First().Date), Maximum = DateTimeAxis.ToDouble(dates.Last().Date), StringFormat = "dd-MM-yyyy", MinimumMinorStep = 1, MinimumMajorStep = 1
                    });
                    MainChart.Model.Axes.Add(new LinearAxis {
                        Position = AxisPosition.Left, Minimum = LinearAxis.ToDouble(prices.Min() * 0.95), Maximum = LinearAxis.ToDouble(prices.Max() * 1.05), MinimumMinorStep = 1
                    });
                    var areaSeries = new AreaSeries();

                    if (prices.Count == dates.Count)
                    {
                        for (int i = 0; i < prices.Count; i++)
                        {
                            DataPoint dp = new DataPoint(DateTimeAxis.ToDouble(dates[i]), (double)prices[i]);
                            areaSeries.Points.Add(dp);
                        }
                        MainChart.Model.Series.Add(areaSeries);
                        MainChart.Model.Title = model.Name;
                    }

                    MainChart.Model.InvalidatePlot(true);
                }
            }
        }