Exemple #1
0
        /*
         * private async void PbiView_DatasetChanged(object sender, EventArgs e)
         * {
         *  var selectedDataset = PbiView.SelectedDataset;
         *  if (selectedDataset == null) return;
         *  Log.Information($"Dataset:{selectedDataset.Name}");
         *
         *  Dax.ViewModel.VpaModel newModel = null;
         *  if (CacheVpaModels.TryGetValue(selectedDataset, out newModel))
         *  {
         *      CurrentVpaModel = newModel;
         *      return;
         *  }
         *
         *  // Loader and show VPAX
         *  DisplayStatus($"Loading VertiPaq Analyzer from dataset {selectedDataset.Name} ...");
         *  await Task.Run(() =>
         *  {
         *      newModel = GetVpaModel(selectedDataset.Name, selectedDataset.Id);
         *  });
         *  if (newModel != null)
         *  {
         *      CacheVpaModels.AddOrUpdate(selectedDataset, newModel, (key, oldValue) => newModel);
         *      CurrentVpaModel = newModel;
         *      DisplayStatus("");
         *  }
         *  else
         *  {
         *      DisplayStatus($"Error reading VertiPaq Analyzer from dataset {selectedDataset.Name}");
         *  }
         * }
         */

        private async void PbiTreeView_DatasetChanged(object sender, EventArgs e)
        {
            var selectedDataset = PbiTreeView.SelectedDataset;

            if (selectedDataset == null)
            {
                return;
            }
            Log.Information($"Dataset:{selectedDataset.Name}");

            Dax.ViewModel.VpaModel newModel = null;
            if (CacheVpaModels.TryGetValue(selectedDataset, out newModel))
            {
                CurrentVpaModel = newModel;
                return;
            }

            // Loader and show VPAX
            DisplayStatus($"Loading VertiPaq Analyzer from dataset {selectedDataset.Name} ...");
            await Task.Run(() =>
            {
                newModel = GetVpaModel(selectedDataset.Name, selectedDataset.Id);
            });

            if (newModel != null)
            {
                CacheVpaModels.AddOrUpdate(selectedDataset, newModel, (key, oldValue) => newModel);
                CurrentVpaModel = newModel;
                DisplayStatus("");
            }
            else
            {
                DisplayStatus($"Error reading VertiPaq Analyzer from dataset {selectedDataset.Name}");
            }
        }
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            /*
             * // Read Dax.Model from JSON file
             * string json = System.IO.File.ReadAllText(@"c:\temp\model.json");
             * var m = JsonConvert.DeserializeObject<Dax.Model.Model>(json, new JsonSerializerSettings
             * {
             *  PreserveReferencesHandling = PreserveReferencesHandling.All,
             *  ReferenceLoopHandling = ReferenceLoopHandling.Serialize
             * });
             */

            // Extract Dax.Model from SSAS connection
            var m = TestDaxModelHelper.GetDaxModel(@"localhost\tab17", "AdventureWorks");

            var vm = new Dax.ViewModel.VpaModel(m);

            treeviewTables.DataContext        = vm;
            treeviewColumns.DataContext       = vm;
            treeviewRelationhsips.DataContext = vm;
        }