public async Task HandlePointOnclick(IPointEventArgs args) { if (!this.Widget.AllowFiltrationSource_TextCategory) { return; } var series = this.ReportChartData.Series[(int)args.PointIndex]; var category = series.Name; var data = this.DashboardVm.ObtainFilterGroup(this.Widget); var filters = new string[] { category.ToUpper() }; if (data.FilterLabels == null) { data.FilterLabels = filters; } else { data.FilterLabels = data.FilterLabels.Concat(filters).Distinct().ToArray(); } data.FilterTarget = ReportFilterInstruction.Targets.Column; if (data.AllowDynamicFiltration) { await this.DashboardVm.UpdateDynamicWidgetsFilteringAsync(); } }
public async Task HandlePointOnclick(IPointEventArgs args) { //if (this.Widget.AllowFiltrationSource == false) // return; var series = this.ReportChartData.Series[(int)args.SeriesIndex]; var category = series.Name; ReportSeriesChartDataItem currentData = series.Data[(int)args.PointIndex]; var data = this.DashboardVm.ObtainFilterGroup(this.Widget); bool didModify = false; if (this.Widget.AllowFiltrationSource_TextCategory) { var filters = new string[] { category.ToUpper() }; if (data.FilterLabels == null) { data.FilterLabels = filters; } else { data.FilterLabels = data.FilterLabels.Concat(filters).Distinct().ToArray(); } data.FilterTarget = ReportFilterInstruction.Targets.Column; didModify = true; } if (this.Widget.AllowFiltrationSource_DateTime && series.Data.Count > 1) { didModify = true; data.StartTime = currentData.StartTime; data.EndTime = currentData.EndTime; //if (series.Data.Count == args.PointIndex + 1) //{// Last one // var prevData = series.Data[(int)args.PointIndex - 1]; // var delta = currentData.DatePosition - prevData.DatePosition; // data.StartTime = currentData.DatePosition; // data.EndTime = currentData.DatePosition + delta; // didModify = true; //} //else //{// First or a middle one. // var nextData = series.Data[(int)args.PointIndex + 1]; // data.StartTime = currentData.DatePosition; // data.EndTime = nextData.DatePosition; // didModify = true; //} } if (didModify && data.AllowDynamicFiltration) { await this.DashboardVm.UpdateDynamicWidgetsFilteringAsync(); } }