Пример #1
0
 internal void SetViewportX(Charts.IntRange xRange)
 {
     foreach (DictionaryEntry item in this)
     {
         if ((item.Value as baseClass.controls.graphPanel).Visible)
         {
             (item.Value as baseClass.controls.graphPanel).myGraphObj.myViewportX = xRange;
         }
     }
 }
Пример #2
0
        /// <summary>
        /// Add a range of samples from the users algorithms to the end of our current list.
        /// </summary>
        /// <param name="updates">Chart updates since the last request.</param>
        protected void SampleRange(List <Chart> updates)
        {
            lock (ChartLock)
            {
                foreach (var update in updates)
                {
                    //Create the chart if it doesn't exist already:
                    Chart chart;
                    if (!Charts.TryGetValue(update.Name, out chart))
                    {
                        chart = new Chart(update.Name);
                        Charts.AddOrUpdate(update.Name, chart);
                    }

                    // for alpha assets chart, we always create a new series instance (step on previous value)
                    var forceNewSeries = update.Name == ChartingInsightManagerExtension.AlphaAssets;

                    //Add these samples to this chart.
                    foreach (var series in update.Series.Values)
                    {
                        if (series.Values.Count > 0)
                        {
                            var thisSeries = chart.TryAddAndGetSeries(series.Name, series.SeriesType, series.Index,
                                                                      series.Unit, series.Color, series.ScatterMarkerSymbol,
                                                                      forceNewSeries);
                            if (series.SeriesType == SeriesType.Pie)
                            {
                                var dataPoint = series.ConsolidateChartPoints();
                                if (dataPoint != null)
                                {
                                    thisSeries.AddPoint(dataPoint);
                                }
                            }
                            else
                            {
                                var values = thisSeries.Values;
                                if ((values.Count + series.Values.Count) <= _job.Controls.MaximumDataPointsPerChartSeries) // check chart data point limit first
                                {
                                    //We already have this record, so just the new samples to the end:
                                    values.AddRange(series.Values);
                                }
                                else if (!_chartSeriesExceededDataPoints.Contains(chart.Name + series.Name))
                                {
                                    _chartSeriesExceededDataPoints.Add(chart.Name + series.Name);
                                    DebugMessage($"Exceeded maximum data points per series, chart update skipped. Chart Name {update.Name}. Series name {series.Name}. " +
                                                 $"Limit is currently set at {_job.Controls.MaximumDataPointsPerChartSeries}");
                                }
                            }
                        }
                    }
                }
            }
        }
Пример #3
0
        private void ExecCommandLimpar(object obj)
        {
            if (Charts != null)
            {
                Charts.Clear();
            }

            DataI    = new DateTime(DateTime.Now.Year, 1, 1);
            DataF    = DateTime.Now;
            PrintBox = Visibility.Collapsed;
            MainBox  = Visibility.Visible;
        }
Пример #4
0
        public PartialViewResult GunlukSatisPie(int tarih)
        {
            ViewBag.tarih  = tarih;
            ViewBag.tarih2 = tarih.FromOADateInt();
            if (CheckPerm(Perms.ChartGunlukSatis, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/GunlukSatisPie", new List <ChartGunlukSatisAnalizi>()));
            }
            var liste = new Charts(db, vUser.SirketKodu).ChartGunlukSatisAnalizi(tarih);

            return(PartialView("Satis/GunlukSatisPie", liste));
        }
Пример #5
0
        public PartialViewResult BolgeBazliSatisAnaliziPie(int ay, string kriter)
        {
            ViewBag.Ay     = ay;
            ViewBag.Kriter = kriter;
            if (CheckPerm(Perms.ChartBolgeBazliSatisAnalizi, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/BolgeBazliSatisAnaliziPie", new List <ChartBolgeBazliSatisAnalizi>()));
            }
            var liste = new Charts(db, vUser.SirketKodu).ChartBolgeBazliSatisAnalizi(ay, kriter);

            return(PartialView("Satis/BolgeBazliSatisAnaliziPie", liste));
        }
Пример #6
0
        public Charts GetDashboard()
        {
            var lst    = Helpers.ChartsHelper.GetRandomSurvey();
            var charts = new Charts()
            {
                lstCharts1 = Helpers.ChartsHelper.SetDataForChart1(lst),
                lstCharts2 = Helpers.ChartsHelper.SetDataForChart2(lst),
                lstCharts3 = Helpers.ChartsHelper.SetDataForChart3(lst)
            };

            return(charts);
        }
Пример #7
0
        public PartialViewResult BaglantiZamanCizelgesi()
        {
            if (CheckPerm(Perms.ChartBaglantiZamanCizelgesi, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/BaglantiZamanCizelgesi", new List <ChartBaglantiZaman>()));
            }
            List <ChartBaglantiZaman> liste;

            liste = new Charts(db, vUser.SirketKodu).ChartBaglantiZaman();

            return(PartialView("Satis/BaglantiZamanCizelgesi", liste));
        }
Пример #8
0
        public PartialViewResult SatisTemsilcisiAylikSatisAnalizi(string kod, int tarih)
        {
            ViewBag.Tarih  = tarih;
            ViewBag.Kriter = kod;
            if (CheckPerm(Perms.ChartSatisTemsilcisiAylikSatisAnalizi, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/SatisTemsilcisi_AylikSatisAnalizi", new List <ChartSatisTemsilcisiAylikSatisAnalizi>()));
            }
            var liste = new Charts(db, vUser.SirketKodu).SatisTemsilcisiAylikSatisAnalizi(tarih, kod);

            return(PartialView("Satis/SatisTemsilcisi_AylikSatisAnalizi", liste));
        }
Пример #9
0
        /// <summary>
        /// Raises the <see cref="Updated"/> event.
        /// </summary>
        /// <remarks>
        /// <para>
        /// <strong>Notes to Inheritors:</strong> When overriding <see cref="OnUpdate"/> in a
        /// derived class, be sure to call the base class's <see cref="OnUpdate"/> method so that
        /// registered delegates receive the event.
        /// </para>
        /// </remarks>
        protected virtual void OnUpdate()
        {
            var xAxis  = XAxis;
            var yAxis  = YAxis;
            var charts = Charts.ToArray();

            // Update data sources.
            foreach (var chart in charts)
            {
                // Ensure that the correct axes are used.
                if (xAxis != null && chart.XAxis != xAxis)
                {
                    chart.XAxis = xAxis;
                }
                if (yAxis != null && chart.YAxis != yAxis)
                {
                    chart.YAxis = yAxis;
                }

                chart.UpdateDataSource();
            }

#if DEBUG
            if (!WindowsHelper.IsInDesignMode && charts.All(c => c.IsValid && c.XAxis != null && c.YAxis != null))
            {
                // Validate data.
                // But only
                //   - in DEBUG mode
                //     (for performance reasons)
                //   - at runtime
                //     (Do not validate the data in Visual Studio Designer or Expression Blend, because
                //     designers often create invalid intermediate states. If we would throw an exception
                //     every time ValidateData() fails we would break the designer.)
                //   - when all charts are valid
                //     (Silverlight is often very lazy when resolving bindings. Therefore, charts can be
                //     invalid, even if everything is set correctly in XAML.)
                ValidateData();
            }
#endif

            // Draw charts.
            foreach (var chart in charts)
            {
                chart.Update();
            }

            var handler = Updated;
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
        }
Пример #10
0
        public override void AcceptVisitor(IVisitor visitor)
        {
            base.AcceptVisitor(visitor);
            if (!IsLoaded)
            {
                return;
            }

            _usedBuildingBlocks.Each(x => x.AcceptVisitor(visitor));
            Model?.AcceptVisitor(visitor);
            SimulationSettings?.AcceptVisitor(visitor);
            Charts.Each(x => x.AcceptVisitor(visitor));
        }
Пример #11
0
        /// <summary>
        /// Accion que se produce cuando se elimina un elemento.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void removeMenuItem_Click(object sender, EventArgs e)
        {
            var item = sender as MenuItem;

            var element = item.Tag as ChartElement;

            if (element is BeginChartElement)
            {
                this.Charts.First = null;
            }

            Charts.Remove(element);
        }
Пример #12
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value != null && value.GetType() == typeof(string))
            {
                int xpToLevel = Charts.GetXPToLevel(value as string);
                if (xpToLevel > -1)
                {
                    return(xpToLevel.ToString());
                }
            }

            return("???");
        }
        private FormattedText GetXHeader(double x)
        {
            var first = Charts.First();
            // x地点を表す時刻
            var xtime = TimeSpan.FromTicks((long)(XRange.Ticks / first.GWidth * (x - Util.MarginLeft)));
            // x地点を表す日付
            var xdate = XBeginDate + XBeginTime + xtime;

            var xheader = ScaleType == DateOrTimeType.DateTime
                ? $"{string.Format(XDateFormat3, xdate)}"
                : $"{string.Format(XTimeFormat3, xtime)}";

            return(Util.GetFormattedText(xheader, Util.RightClickBrush, this));
        }
Пример #14
0
        public PartialViewResult BakiyeRiskAnalizi()
        {
            if (CheckPerm(Perms.ChartBakiyeRiskAnalizi, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/BakiyeRiskAnalizi", new List <DB_BakiyeRiskAnalizi>()));
            }
            var liste = dbl.DB_BakiyeRiskAnalizi.Where(m => m.DB == vUser.SirketKodu).ToList();

            if (liste.Count == 0)
            {
                liste = new Charts(db, vUser.SirketKodu).BakiyeRiskAnalizi();
            }
            return(PartialView("Satis/BakiyeRiskAnalizi", liste));
        }
Пример #15
0
        private void ShowFirstBookmarkChildren()
        {
            var bookmark = bookmarkStrip.GetFirstBookmark();

            BookmarkStorage.Instance.CurrentBookmarkId = bookmark.Id;
            Charts.ForEach(c =>
            {
                if (c.bookmarkId == bookmark.Id)
                {
                    c.SavePlacement();
                }
            });
            ShowBookmarkChildren(bookmark);
        }
Пример #16
0
        public PartialViewResult GunlukSatisDoubleKriterPie(string kod, int islemtip, int tarih)
        {
            ViewBag.IslemTip = islemtip;
            ViewBag.Kriter   = kod;
            ViewBag.tarih    = tarih;
            ViewBag.tarih2   = tarih.FromOADateInt();
            if (CheckPerm(Perms.ChartGunlukSatis, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/GunlukSatisAnaliziDoubleKriterPie", new List <ChartGunlukSatisAnalizi>()));
            }
            var liste = new Charts(db, vUser.SirketKodu).ChartGunlukSatisAnalizi(kod, islemtip, tarih);

            return(PartialView("Satis/GunlukSatisAnaliziDoubleKriterPie", liste));
        }
Пример #17
0
        public PartialViewResult GunlukSatisYearToDayPie()
        {
            if (CheckPerm(Perms.ChartGunlukSatis, PermTypes.Reading) == false)
            {
                return(PartialView("PartialGunlukSatisYearToDayPie", new List <DB_GunlukSatisAnaliziYearToDay>()));
            }
            var liste = dbl.DB_GunlukSatisAnaliziYearToDay.Where(m => m.DB == vUser.SirketKodu).ToList();

            if (liste.Count == 0)
            {
                liste = new Charts(db, vUser.SirketKodu).ChartYear2Day();
            }
            return(PartialView("Satis/GunlukSatısAnaliziYearToDayPie", liste));
        }
Пример #18
0
        public PartialViewResult AylikSatisAnaliziBar()
        {
            if (CheckPerm(Perms.ChartAylikSatisAnaliziBar, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/AylikSatisAnaliziBar", new List <DB_Aylik_SatisAnalizi>()));
            }
            var liste = dbl.DB_Aylik_SatisAnalizi.Where(m => m.DB == vUser.SirketKodu).ToList();

            if (liste.Count == 0)
            {
                liste = new Charts(db, vUser.SirketKodu).ChartMonthly();
            }
            return(PartialView("Satis/AylikSatisAnaliziBar", liste));
        }
Пример #19
0
        /// <summary>
        /// Add a range of samples from the users algorithms to the end of our current list.
        /// </summary>
        /// <param name="updates">Chart updates since the last request.</param>
        public void SampleRange(List <Chart> updates)
        {
            lock (_chartLock)
            {
                foreach (var update in updates)
                {
                    //Create the chart if it doesn't exist already:
                    if (!Charts.ContainsKey(update.Name))
                    {
                        Charts.AddOrUpdate(update.Name, new Chart(update.Name));
                    }

                    //Add these samples to this chart.
                    foreach (var series in update.Series.Values)
                    {
                        //If we don't already have this record, its the first packet
                        var chart = Charts[update.Name];

                        var thisSeries = chart.TryAddAndGetSeries(series.Name, series.SeriesType, series.Index,
                                                                  series.Unit, series.Color, series.ScatterMarkerSymbol);
                        if (series.Values.Count > 0)
                        {
                            if (series.SeriesType == SeriesType.Pie)
                            {
                                var dataPoint = series.ConsolidateChartPoints();
                                if (dataPoint != null)
                                {
                                    thisSeries.AddPoint(dataPoint);
                                }
                            }
                            else
                            {
                                var values = chart.Series[series.Name].Values;
                                if ((values.Count + series.Values.Count) <= _job.Controls.MaximumDataPointsPerChartSeries) // check chart data point limit first
                                {
                                    //We already have this record, so just the new samples to the end:
                                    values.AddRange(series.Values);
                                }
                                else if (!_chartSeriesExceededDataPoints.Contains(chart.Name + series.Name))
                                {
                                    _chartSeriesExceededDataPoints.Add(chart.Name + series.Name);
                                    DebugMessage($"Exceeded maximum data points per series, chart update skipped. Chart Name {update.Name}. Series name {series.Name}. " +
                                                 $"Limit is currently set at {_job.Controls.MaximumDataPointsPerChartSeries}");
                                }
                            }
                        }
                    }
                }
            }
        }
Пример #20
0
 private void ExecuteCommandLimpar(object param)
 {
     Rel.Reset();
     Charts.Clear();
     DateI       = new DateTime(DateTime.Now.Year, 1, 1);
     DateF       = DateTime.Now;
     ViewFiltros = string.Empty;
     getSituacao = 0;
     getOrigem   = 0;
     ViewFiltros = string.Empty;
     FlowDoc     = null;
     MainBox     = Visibility.Visible;
     PrintBox    = Visibility.Collapsed;
 }
Пример #21
0
        public async Task <IActionResult> Create([Bind("ID,Type,Gender,Age,LifeExpectancy,StoreId,img")] Pets pets)
        {
            if (HttpContext.Session.GetString("Type") == null || HttpContext.Session.GetString("Type") == "user")
            {
                ViewBag.message = "Log in";
            }
            else
            {
                ViewBag.message  = null;
                ViewBag.message2 = "Hi " + HttpContext.Session.GetString("userName").ToString() + " Log out";
            }
            if (HttpContext.Session.GetString("Type") == "admin")
            {
                ViewBag.msg = "Customer";
            }
            else if (HttpContext.Session.GetString("Type") == "Owner")
            {
                ViewBag.MyPets = "My Pets";
            }
            else if (HttpContext.Session.GetString("Type") == "userRegistered")
            {
                ViewBag.wish = "wish list";
            }
            if (ModelState.IsValid)
            {
                _context.Add(pets);
                await _context.SaveChangesAsync();

                var user = _context.Charts.FirstOrDefault(u => u.Type == pets.Type);

                if (user == null)
                {
                    Charts newChart = new Charts();
                    newChart.Type    = pets.Type;
                    newChart.Counter = 0;
                    _context.Charts.Add(newChart);
                    await _context.SaveChangesAsync();
                }
                return(RedirectToAction(nameof(Index)));
            }
            if (HttpContext.Session.GetInt32(pets.Type) == null)
            {
                HttpContext.Session.SetInt32(pets.Type, 0);
            }
            ViewBag.userId      = HttpContext.Session.GetInt32("userID");
            ViewBag.Type        = HttpContext.Session.GetString("Type");
            ViewBag.Id          = HttpContext.Session.GetString("userID");
            ViewData["StoreId"] = new SelectList(_context.Set <Stores>(), "ID", "ID", pets.StoreId);
            return(View(pets));
        }
Пример #22
0
        public static void GeneratePlot(AzureExperimentManager aeMan, Tags tags, string prefix, ComparableExperiment refE, int refId, int id, string outputPath)
        {
            Console.WriteLine("Generating plot for #{0}...", id);
            System.Diagnostics.Debug.Print("Starting task for job #{0}", id);
            ComparableExperiment e = Helpers.GetComparableExperiment(id, aeMan).Result;

            Comparison cmp   = new Comparison(refE, e, prefix.Replace('|', '/'), tags);
            Chart      chart = Charts.BuildComparisonChart(prefix, cmp);

            chart.SaveImage(Path.Combine(outputPath, String.Format("{0}-{1}.png", refId, id)), ChartImageFormat.Png);

            e = null; cmp = null; chart = null;
            System.GC.Collect();
            System.Diagnostics.Debug.Print("Ending task for job #{0}", id);
        }
Пример #23
0
        public Chart AddChart(string symbol, ChartTypeEnum chartType, ChartTimeFrameEnum timeFrame, string name)
        {
            var comodityInfo = Market.GetCommodityInformation(symbol);
            var chart        = new Chart(comodityInfo, chartType, timeFrame, Market, name);

            if (!Charts.ContainsKey(symbol))
            {
                Charts.Add(symbol, new List <Chart>());
                lastDataTimes.Add(symbol, DataStartTime);
            }

            Charts[symbol].Add(chart);

            return(chart);
        }
        private void HandleUnloadCommand()
        {
            MessageBoxResult result = MessageBox.Show("Are you sure remove selected charts?", string.Empty, MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (result == MessageBoxResult.Yes)
            {
                ChartMessage message = new ChartMessage(selectedItems);
                Messenger.Default.Send <ChartMessage>(message, "UnloadCharts");
                for (int i = selectedItems.Count - 1; i >= 0; i--)
                {
                    ChartItem chart = selectedItems[i];
                    Charts.Remove(chart);
                }
            }
        }
Пример #25
0
        public PartialViewResult UrunGrubuSatis(int tarih)
        {
            ViewBag.Tarih = tarih;
            if (CheckPerm(Perms.ChartUrunGrubuSatis, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/UrunGrubuSatis", new List <DB_UrunGrubu_SatisAnalizi>()));
            }
            var liste = dbl.DB_UrunGrubu_SatisAnalizi.Where(m => m.DB == vUser.SirketKodu && m.Ay == tarih).ToList();

            if (liste.Count == 0)
            {
                liste = new Charts(db, vUser.SirketKodu).ChartUrunGrubu(tarih);
            }
            return(PartialView("Satis/UrunGrubuSatis", liste));
        }
Пример #26
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string     CategoryTheme           = "CoThemeOptional";
        string     statusPeriod            = General.GetUserDefinedPeriod().Substring(2, 2);
        DataTable  dtCoOptionalRial        = BiDatabaseHandler.GetDataCoOptionalRial1(statusPeriod);
        Highcharts ChartLineCoOptionalRial = Charts.GetChartLine(dtCoOptionalRial, CategoryTheme, "ChartBarCoOptionalRial");

        ltrChartLineCoOptionalRial.Text = ChartLineCoOptionalRial.ToHtmlString();

        CategoryTheme = "CoThemeOptional";
        DataTable  dtCoOptionalWeight        = BiDatabaseHandler.GetDataCoOptionalWeight1(statusPeriod);
        Highcharts ChartLineCoOptionalWeight = Charts.GetChartLine(dtCoOptionalWeight, CategoryTheme, "ChartBarCoOptionalWeight");

        ltrChartLineCoOptionalWeight.Text = ChartLineCoOptionalWeight.ToHtmlString();
    }
Пример #27
0
        public PartialViewResult BaglantiUrunGrubuPie()
        {
            if (CheckPerm(Perms.ChartBaglantiUrunGrubu, PermTypes.Reading) == false)
            {
                return(PartialView("Satis/BaglantiUrunGrubuPie", new List <DB_SatisBaglanti_UrunGrubu>()));
            }
            var liste = dbl.DB_SatisBaglanti_UrunGrubu.Where(m => m.DB == vUser.SirketKodu).ToList();

            if (liste.Count == 0)
            {
                liste = new Charts(db, vUser.SirketKodu).BaglantiUrunGrubu();
            }

            return(PartialView("Satis/BaglantiUrunGrubuPie", liste));
        }
Пример #28
0
        public SendConsecutive(Charts chart)
        {
            if (chart.Price.Contains(".") && double.TryParse(chart.Price, out double fPrice))
            {
                Price = fPrice;
            }

            else if (int.TryParse(chart.Price, out int sPrice))
            {
                Price = sPrice;
            }

            Date   = chart.Date;
            Volume = chart.Volume;
        }
Пример #29
0
        /// <summary>
        /// Dispose resources
        /// </summary>
        public override Task Disconnect()
        {
            Unsubscribe();

            StateStream.OnNext(StatusEnum.Disconnection);

            Gateways.ForEach(o => o.Disconnect());
            Gateways.Clear();
            Charts.Clear();

            _connections.ForEach(o => o.Dispose());
            _connections.Clear();

            return(Task.FromResult(0));
        }
Пример #30
0
        public SendConsecutive(Charts chart)
        {
            if (int.TryParse(chart.Price, out int stocks))
            {
                Price = stocks;
            }

            else if (double.TryParse(chart.Price, out double futures))
            {
                Price = futures;
            }

            Date   = CheckTheSAT(chart.Date);
            Volume = chart.Volume;
        }
Пример #31
0
        /// <summary>
        /// Creates a new instance
        /// </summary>
        public BacktestingResultHandler()
        {
            ResamplePeriod     = TimeSpan.FromMinutes(4);
            NotificationPeriod = TimeSpan.FromSeconds(2);

            _chartSeriesExceededDataPoints = new HashSet <string>();

            // Delay uploading first packet
            _nextS3Update = StartTime.AddSeconds(30);

            //Default charts:
            Charts.AddOrUpdate("Strategy Equity", new Chart("Strategy Equity"));
            Charts["Strategy Equity"].Series.Add("Equity", new Series("Equity", SeriesType.Candle, 0, "$"));
            Charts["Strategy Equity"].Series.Add("Daily Performance", new Series("Daily Performance", SeriesType.Bar, 1, "%"));
        }
Пример #32
0
 private CurveItem PlotCandleStick(string curveName, Charts.Controls.baseGraphPanel graphPane, AnalysisData data,
                                   Color barUpColor,Color  barDnColor,Color bullCandleColor,Color bearCandleColor)
 {
     graphPane.myGraphObj.SetSeriesX(data.DateTime.Values, Charts.AxisType.DateAsOrdinal);
     CurveItem curveItem = graphPane.myGraphObj.AddCandleStick(curveName,
                                                               MakeChartValue(data.High),
                                                               MakeChartValue(data.Low),
                                                               MakeChartValue(data.Open),
                                                               MakeChartValue(data.Close),
                                                               MakeChartValue(data.Volume),
                                                               barUpColor,barDnColor,bullCandleColor,bearCandleColor);
     myCurveList.Add(curveItem, curveName, graphPane.myGraphObj.myGraphPane, graphPane.Name);
     return curveItem;
 }
Пример #33
0
 private CurveItem PlotCurveLine(string curveName,Charts.Controls.baseGraphPanel graphPane, DataSeries xSeries, DataSeries ySeries,
                                Color color, int weight)
 {
     graphPane.myGraphObj.SetSeriesX(xSeries.Values, Charts.AxisType.DateAsOrdinal);
     CurveItem curveItem = graphPane.myGraphObj.AddCurveLine(curveName, MakeChartValue(ySeries), SymbolType.Default, color, weight);
     myCurveList.Add(curveItem, curveName, graphPane.myGraphObj.myGraphPane, graphPane.Name);
     return curveItem;
 }
Пример #34
0
 /// <summary>
 /// Synchronize charts
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="state"></param>
 private void Chart_OnViewportChanged(object sender, Charts.ViewportState state)
 {
     if (pricePanel.Visible) pricePanel.myGraphObj.myViewportX = state.xRange;
     if (volumePanel.Visible) volumePanel.myGraphObj.myViewportX = state.xRange;
     if (newPanel.Visible) newPanel.myGraphObj.myViewportX = state.xRange;
 }
Пример #35
0
        public static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Usage: profi.exe path-to-data-files");
                return;
            }

            string path = args[0];

            Console.WriteLine("Calculating...");

            List<FileInfo> files = new List<FileInfo>();
            foreach (string file_name in Directory.EnumerateFiles(path, "*.txt"))
            {
                var parts = Path.GetFileName(file_name).Split("-".ToCharArray());
                int thread_id = Convert.ToInt32(parts[0]);
                string name = parts[1].Substring(0, parts[1].Length-4);
                string data = File.ReadAllText(file_name);
                var file = new FileInfo()
              	{
                    ThreadId = thread_id,
                    Name = name,
                    Points = new List<DataPoint>(),
                    CreationDate = File.GetCreationTime(file_name)
                };
                files.Add(file);
                foreach(var line in data.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
                {
                    parts = line.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    file.Points.Add(new DataPoint()
                    {
                        TimePoint = Convert.ToDateTime(parts[0], CultureInfo.InvariantCulture),
                        MemoryPoint = Convert.ToDouble(parts[1])
                    });
                }
            }

            List<ThreadsStats> thread_stats = new List<ThreadsStats>();
            foreach(var _group in files.GroupBy(f => f.ThreadId))
            {
                FileInfo prev = _group.OrderBy(f => f.Name).First();
                ThreadsStats stats = new ThreadsStats(){ ThreadId = _group.First().ThreadId, ChartPoints = new List<ChartPoint>() };
                foreach (var gf in _group.OrderBy(f => f.Name))
                {
                    int count = 0;
                    double delta_time_ms_sum = 0;
                    double memory_byte_sum = 0;

                    List<MixedPoint> mixed = new List<MixedPoint>();
                    mixed.AddRange(prev.Points.Select(f => new MixedPoint()
                    {
                        IsCurrent = false,
                        Point = new DataPoint(){ TimePoint = f.TimePoint, MemoryPoint = f.MemoryPoint}
                    }));
                    mixed.AddRange(gf.Points.Select(f => new MixedPoint()
                    {
                        IsCurrent = true,
                        Point = new DataPoint(){ TimePoint = f.TimePoint, MemoryPoint = f.MemoryPoint}
                    }));
                    mixed = mixed.OrderBy(f => f.Point.TimePoint).ToList();
                    MixedPoint prev_p = null;
                    foreach(var p in mixed)
                    {
                        if(p.IsCurrent)
                        {
                            memory_byte_sum += p.Point.MemoryPoint;
                        }
                        if(prev_p != null && p.IsCurrent)
                        {
                            count++;
                            delta_time_ms_sum += (p.Point.TimePoint - prev_p.Point.TimePoint).TotalMilliseconds;
                        }
                        if(!p.IsCurrent)
                        {
                            prev_p = p;
                        }
                        else
                        {
                            prev_p = null;
                        }
                    }

                    stats.ChartPoints.Add(new ChartPoint()
                    {
                        Name = gf.Name,
                        Memory = mixed.Any(f => f.IsCurrent) ? memory_byte_sum / mixed.Count(f => f.IsCurrent) : 0,
                        TimeDelta = count > 0 ? delta_time_ms_sum / count : 0
                    });
                    thread_stats.Add(stats);

                    prev = gf;
                }
            }

            List<ChartPoint> final_data = thread_stats.SelectMany(f => f.ChartPoints)
                                                      .GroupBy(f => f.Name)
                                                      .Select(f => new ChartPoint()
                                                      {
                                                      		Name = f.First().Name,
                                                            TimeDelta = f.Average(z => z.TimeDelta) / 1000,
                                                            Memory = f.Average(z => z.Memory) / 1048576
                                                      })
                                                      .OrderBy(f => f.Name).ToList();

            Console.WriteLine("Done...");

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            var chart = new Charts();
            chart.BindAndShow(final_data);
            Application.Run(chart);
        }
 /// <summary>
 /// Insert a chart into the currently selected worksheet.
 /// </summary>
 /// <param name="Chart">An SLChart object with the chart's properties already set.</param>
 /// <returns>True if successful. False otherwise.</returns>
 public bool InsertChart(Charts.SLChart Chart)
 {
     slws.Charts.Add(Chart.Clone());
     return true;
 }
Пример #37
0
 private CurveItem PlotCandleStick(string curveName, Charts.Controls.baseGraphPanel graphPane, application.AnalysisData data,
                                   Color barUpColor, Color barDnColor, Color bullCandleColor, Color bearCandleColor)
 {
     pricePane.myGraphObj.SetSeriesX(data.DateTime.Values, Charts.AxisType.DateAsOrdinal);
     CurveItem curveItem = graphPane.myGraphObj.AddCandleStick(curveName, data.High.Values, data.Low.Values, data.Open.Values, data.Close.Values, data.Volume.Values,
                                                               barUpColor, barDnColor, bullCandleColor, bearCandleColor);
     return curveItem;
 }
Пример #38
0
 private CurveItem PlotCurveLine(string curveName, Charts.Controls.baseGraphPanel graphPane, commonClass.DataSeries xSeries, commonClass.DataSeries ySeries,
                                Color color, int weight)
 {
     pricePane.myGraphObj.SetSeriesX(xSeries.Values, Charts.AxisType.DateAsOrdinal);
     CurveItem curveItem = graphPane.myGraphObj.AddCurveLine(curveName, ySeries.Values, SymbolType.None, color, weight);
     return curveItem;
 }
        /// <summary>
        /// Insert a chart into a chartsheet.
        /// </summary>
        /// <param name="Chart">An SLChart object with the chart's properties already set.</param>
        /// <param name="ChartsheetName">The name should not be blank, nor exceed 31 characters. And it cannot contain these characters: \/?*[] It cannot be the same as an existing name (case-insensitive). But there's nothing stopping you from using 3 spaces as a name.</param>
        /// <returns>True if successful. False otherwise.</returns>
        public bool InsertChart(Charts.SLChart Chart, string ChartsheetName)
        {
            if (!SLTool.CheckSheetChartName(ChartsheetName))
            {
                return false;
            }
            foreach (SLSheet sheet in slwb.Sheets)
            {
                if (sheet.Name.Equals(ChartsheetName, StringComparison.OrdinalIgnoreCase))
                {
                    return false;
                }
            }

            ChartsheetPart csp = wbp.AddNewPart<ChartsheetPart>();

            #region the drawing part
            DrawingsPart dp = csp.AddNewPart<DrawingsPart>();
            dp.WorksheetDrawing = new Xdr.WorksheetDrawing();

            ChartPart chartp = dp.AddNewPart<ChartPart>();
            chartp.ChartSpace = Chart.ToChartSpace(ref chartp);

            Xdr.AbsoluteAnchor absanchor = new Xdr.AbsoluteAnchor();
            absanchor.Append(new Xdr.Position() { X = 0, Y = 0 });
            // The paper size is involved. The default is Letter, which is 11 inch by 8.5 inch
            // with landscape orientation.
            // The page margin is also involved. In particular, the left and right margins for
            // the width, and top and bottom margins for the height.
            // We're using the "default" margin settings, which is
            // left=0.7, right=0.7, top=0.75, bottom=0.75
            // Excel also has a buffer of 0.12 inches around the sides...
            // And so,
            // 8668512 = (11 - 0.7 - 0.7 - 0.12) * 914400
            // 6291072 = (8.5 - 0.75 - 0.75 - 0.12) * 914400
            absanchor.Append(new Xdr.Extent() { Cx = 8668512, Cy = 6291072 });

            Xdr.GraphicFrame gf = new Xdr.GraphicFrame() { Macro = "" };

            gf.NonVisualGraphicFrameProperties = new Xdr.NonVisualGraphicFrameProperties();
            gf.NonVisualGraphicFrameProperties.NonVisualDrawingProperties = new Xdr.NonVisualDrawingProperties()
            {
                Id = 2,
                Name = Chart.ChartName
            };
            gf.NonVisualGraphicFrameProperties.NonVisualGraphicFrameDrawingProperties = new Xdr.NonVisualGraphicFrameDrawingProperties()
            {
                GraphicFrameLocks = new A.GraphicFrameLocks() { NoGrouping = true }
            };

            gf.Transform = new Xdr.Transform()
            {
                Offset = new A.Offset() { X = 0, Y = 0 },
                Extents = new A.Extents() { Cx = 0, Cy = 0 }
            };

            gf.Graphic = new A.Graphic();
            gf.Graphic.GraphicData = new A.GraphicData();
            gf.Graphic.GraphicData.Uri = SLConstants.NamespaceC;
            gf.Graphic.GraphicData.Append(new C.ChartReference() { Id = dp.GetIdOfPart(chartp) });

            absanchor.Append(gf);
            absanchor.Append(new Xdr.ClientData());

            dp.WorksheetDrawing.Append(absanchor);
            #endregion

            #region the chartsheet part
            csp.Chartsheet = new Chartsheet();
            csp.Chartsheet.ChartSheetProperties = new ChartSheetProperties();
            csp.Chartsheet.ChartSheetViews = new ChartSheetViews();
            csp.Chartsheet.ChartSheetViews.Append(new ChartSheetView() { WorkbookViewId = 0 });
            csp.Chartsheet.PageMargins = new PageMargins()
            {
                Left = SLConstants.NormalLeftMargin,
                Right = SLConstants.NormalRightMargin,
                Top = SLConstants.NormalTopMargin,
                Bottom = SLConstants.NormalBottomMargin,
                Header = SLConstants.NormalHeaderMargin,
                Footer = SLConstants.NormalFooterMargin
            };
            csp.Chartsheet.Drawing = new DocumentFormat.OpenXml.Spreadsheet.Drawing()
            {
                Id = csp.GetIdOfPart(dp)
            };
            #endregion

            ++giWorksheetIdCounter;
            slwb.Sheets.Add(new SLSheet(ChartsheetName, (uint)giWorksheetIdCounter, wbp.GetIdOfPart(csp), SLSheetType.Chartsheet));

            return true;
        }
Пример #40
0
 public Preferences()
 {
     charts = new Charts();
 }