Example #1
0
        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();
            }
        }