private void chartViewer1_ViewPortChanged(object sender, ChartDirector.WinViewPortEventArgs e)
        {
            DemoModule demo = (DemoModule)treeView.SelectedNode.Tag;

            if (demo != null)
            {
                bool updated = false;


                DateTime fromDate = dtpFromDate.Value;
                DateTime toDate   = dtpToDate.Value;

                if (demo.getChartGroup() == 1)
                {
                    var volQuotes = (from q in dataContext.volquotes
                                     where q.stock == Int32.Parse(tickerSymbol.SelectedValue.ToString()) &&
                                     q.datetime >= fromDate &&
                                     q.datetime <= toDate.AddDays(1)
                                                         //&& q.TimeFrame == Int32.Parse(timeFramePeriod.SelectedValue.ToString())
                                     && q.timeframe == 1 // поменяли в связи с тем, что в графиках последняя свеча суммируется по таймфрейму 1, т.е. каждую минуту даже если график таймфреймом более 1 минуты.
                                     select q).Count();

                    if (lastVolCount != volQuotes)
                    {
                        updated      = true;
                        lastVolCount = volQuotes;
                    }
                }
                if (demo.getChartGroup() == 2)
                {
                    var settingQuotes = (from sq in dataContext.settingquotes
                                         where sq.stock == Int32.Parse(tickerSymbol.SelectedValue.ToString()) &&
                                         sq.datetime >= fromDate &&
                                         sq.datetime <= toDate.AddDays(1)
                                                              //&& sq.TimeFrame == Int32.Parse(timeFramePeriod.SelectedValue.ToString())
                                         && sq.timeframe == 1 // поменяли в связи с тем, что в графиках последняя свеча суммируется по таймфрейму 1, т.е. каждую минуту даже если график таймфреймом более 1 минуты.
                                         select sq).Count();
                    if (lastSettingsCount != settingQuotes)
                    {
                        updated           = true;
                        lastSettingsCount = settingQuotes;
                    }
                }

                if (updated)
                {
                    // Check if a demo module node is selected. Demo module is attached to the node
                    // as the Tag property

                    // Clear all ChartViewers
                    for (int i = 0; i < chartViewers.Length; ++i)
                    {
                        chartViewers[i].Visible = false;
                    }

                    // Each demo module can display a number of charts
                    int noOfCharts = demo.getNoOfCharts();
                    for (int i = 0; i < noOfCharts; ++i)
                    {
                        int chartWidth   = rightPanel.Width - 50;
                        int chartHeighth = rightPanel.Height - 110;
                        demo.createChart(chartViewers[i], "" + i, Int32.Parse(tickerSymbol.SelectedValue.ToString()), Int32.Parse(timeFramePeriod.SelectedValue.ToString()), fromDate, toDate, (int)trbSize.Value, chartWidth, chartHeighth, priceTypeCombo.SelectedIndex);
                        chartViewers[i].Visible = true;
                    }
                }
            }
        }