private void OnPriceLevelSelected(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems.Count == 0)
            {
                lbLevelDates.Items.Clear();
                _currentLevel = null;
                return;
            }

            _currentLevel                = (DbPriceLevel)e.AddedItems[0];
            btnRestoreLevel.IsEnabled    =
                btnRemoveLevel.IsEnabled = true;

            if (_currentLevel.Id == "nil")
            {
                lbLevelDates.Items.Clear();
                btnRestoreLevel.IsEnabled    =
                    btnRemoveLevel.IsEnabled = false;
            }
            else
            {
                DbPriceLevel obj = null;
                MainWindow.HandleException(() => obj = _controller.GetPriceLevelById(_currentLevel.Id));

                if (obj != null)
                {
                    lbLevelDates.Items.Clear();

                    foreach (var date in obj.ConfirmedDates)
                    {
                        lbLevelDates.Items.Add(date.ToLocalTime().ToString("dd MMM yyyy, HH:mm"));
                    }
                }
            }
        }
        public PriceLevelWindow()
        {
            _timer          = new System.Windows.Forms.Timer();
            _timer.Interval = 60000;
            _timer.Tick    += OnTimerTick;

            InitializeComponent();

            NullLevel = new DbPriceLevel {
                Id = "nil", PriceStr = "<..>"
            };
            _controller = new PriceLevelController();
        }
Пример #3
0
        public DbPriceLevel GetPriceLevelById(string id)
        {
            DbPriceLevel level = null;
            var          res   = _dbRepo.GetPriceLevelById(id);

            if (res.Length > 0)
            {
                level = new DbPriceLevel {
                    Id = id, Price = res[0].Price
                };
                level.ConfirmedDates.AddRange(res.Select(x => x.Date2.Value));
            }
            return(level);
        }
        private void DrawPriceLevel(DbPriceLevel level)
        {
            var points = new PointPairList();

            zedPrice.GraphPane.AddCurve(level.Id, points, Color.Red, SymbolType.None);

            var dt1 = level.ConfirmedDates[0];
            var dt2 = level.Date2;

            while (dt1 < dt2)
            {
                points.Add(new XDate(dt1), level.Price);
                dt1 = dt1.AddMinutes(1);
            }
        }
        private void OnRemoveLevelClick(object sender, RoutedEventArgs e)
        {
            if (_currentLevel == null)
            {
                MainWindow.Warning("Select active level.");
                return;
            }
            if (cbDelete.IsChecked.Value)
            {
                var result = MessageBox.Show("Are you confirm permanently removing price from the database?", "Warning", MessageBoxButton.OKCancel, MessageBoxImage.Warning);
                if (result == MessageBoxResult.Cancel)
                {
                    return;
                }
            }
            var btn = (Button)sender;

            btn.IsEnabled = false;

            _controller.RemovePriceLevelAsync(_currentLevel.Id, _mainWnd, cbDelete.IsChecked.Value, () =>
            {
                var level  = _currentLevel;
                PriceLevel = _currentLevel;
                PriceRemoved(this, null);
                lbActiveLevels.Items.Remove(_currentLevel);
                if (!cbDelete.IsChecked.Value)
                {
                    lbInactiveLevels.Items.Add(level);
                }
            },
                                              () =>
            {
                cbDelete.IsChecked = false;
                btn.IsEnabled      = true;
                _currentLevel      = null;
            });
        }
        private void OnRestoreLevelClick(object sender, RoutedEventArgs e)
        {
            if (_currentLevel == null)
            {
                MainWindow.Warning("Select active or inactive level.");
                return;
            }
            var btn = (Button)sender;

            btn.IsEnabled = false;

            _controller.RestorePriceLevelAsync(_currentLevel.Id, _mainWnd, () =>
            {
                PriceLevel = _currentLevel;
                PriceCreated(this, null);
                lbActiveLevels.Items.Add(_currentLevel);
                lbInactiveLevels.Items.Remove(_currentLevel);
            },
                                               () =>
            {
                btn.IsEnabled = true;
                _currentLevel = null;
            });
        }