Exemplo n.º 1
0
        private Task SetupContextMenu(Query query, IEnumerable <Dimension> dimensionsAvailable)
        {
            // Only show Dimensions that haven't been grouped by.
            var dimensionContextMenuItems = dimensionsAvailable
                                            .Where(x => !query.GroupingDimensions.Contains(x))
                                            .Select(x =>
                                                    new ContextMenuButtonItem(Scheduler)
            {
                DisplayName = x.Name,
                Command     = new DelegateCommand(
                    () =>
                {
                    var selectedDimension = dimensionsAvailable
                                            .SingleOrDefault(d => d.Name == x.Name);
                    if (selectedDimension == null)
                    {
                        return;
                    }

                    //var selectedItem = Items[SelectedItemIndex];

                    var newFilter = query.GroupingDimensions
                                    .Select(d => new Nitrogen.Common.DataExplorer.Filter
                    {
                        Dimension = d,
                        Operator  = FilterOperator.Equals,
                        Value     = SelectedItem[d.Name]
                    })
                                    .ToList();

                    var newQuery = query.DrillDown(new[] { selectedDimension }, newFilter);

                    _drillDownDimensionRequest.OnNext(newQuery);
                })
            });

            return(ContextMenu.AddRangeAsync(dimensionContextMenuItems));
        }