protected void OnChartClicked(ChartClickedEventArgs e_) { var h = ChartClicked; if (h != null) h(this, e_); }
private async void handleChartClicked(object sender, ChartClickedEventArgs e_) { Logger.Info(string.Format("Row:{0} Col:{1} Type:{2}", e_.RowName, e_.ColumnName, e_.ChartType), typeof(MainContainer)); if (m_lastClicked == null) return; switch (e_.ChartType) { case ChartType.Exposures: { var exp = await m_lastClicked.Row.Underlying.GetAllocatedExposure(m_cc); if (exp == null || !exp.HasData) return; var index = exp.FindColumnIndex(e_.ColumnName); DatedDataCollectionGen<double> d = null; if (index != -1) { d = new DatedDataCollectionGen<double>(exp.Data.Keys.ToArray(), exp.Data.GetColumnValues(index)); } else { var nettedIndicies = exp.FindNettedColumnIndicies(e_.ColumnName); var arr = exp.Data.CombineColumnValues<double>(nettedIndicies, x => x.Sum()); if(arr!=null) d = new DatedDataCollectionGen<double>(exp.Data.Keys.ToArray(), arr); } if (d == null) return; getChart().DoCumulative = false; getChart().SetValues( values_: d, description_: string.Format("{0}.{1} exposure", m_lastClicked.Row.Underlying.RootName, e_.ColumnName)); showChart(); } break; case ChartType.PeriodToDate: { var exp = await m_lastClicked.Row.Underlying.GetHistoricAllocatedPnl(m_cc); if (exp == null || !exp.HasData) return; var index = exp.TimeSeries.FindColumnIndex(e_.ColumnName); DatedDataCollectionGen<double> d = null; if (index != -1) { d = new DatedDataCollectionGen<double>(exp.TimeSeries.Data.Keys.ToArray(), exp.TimeSeries.Data.GetColumnValues(index)); } else { var nettedIndicies = exp.TimeSeries.FindNettedColumnIndicies(e_.ColumnName); var arr = exp.TimeSeries.Data.CombineColumnValues<double>(nettedIndicies, x => x.Sum()); if(arr!=null) d = new DatedDataCollectionGen<double>(exp.TimeSeries.Data.Keys.ToArray(), arr); } if (d == null) return; getChart().DoCumulative = true; getChart().SetValues( values_: new DatedDataCollectionGen<double>(exp.TimeSeries.Data.Keys.ToArray(), exp.TimeSeries.Data.GetColumnValues(index)), description_: string.Format("{0}.{1} p&&l", m_lastClicked.Row.Underlying.RootName, e_.ColumnName)); showChart(); } break; } }