public void MinimalPerspectiveTest()
        {
            DeleteTestPerspectives();

            var handler = new TabularModelHandler("localhost", "AdventureWorks");

            handler.Tree = new MockTree(handler.Model);

            var m = handler.Model;

            // Perspective which includes everything except a few select items:
            var pnEx = "Test Perspective Exclusive";

            Perspective.CreateNew(pnEx);

            m.Tables["Date 6"].InPerspective[pnEx]   = true;
            m.Tables["Currency"].InPerspective[pnEx] = true;

            //m.Tables.InPerspective(pnEx, true);
            //m.Tables["Reseller Sales"].InPerspective[pnEx] = true;

            //m.Tables["Employee"].InPerspective[pnEx] = false;
            //m.Tables["Date"].Hierarchies.InPerspective(pnEx, false);
            //m.Tables["Internet Sales"].Measures.InPerspective(pnEx, false);
            //m.Tables["Product"].Columns.InPerspective(pnEx, false);
            //m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnEx] = false;

            handler.SaveDB();

            handler.UndoManager.Rollback();
            handler.SaveDB();

            // Check that perspectives were succesfully deleted:
            Assert.IsFalse(m.Perspectives.Contains(pnEx));
        }
예제 #2
0
        public Perspective AddPerspective(string name = null)
        {
            if (Handler.UsePowerBIGovernance && !PowerBI.PowerBIGovernance.AllowCreate(typeof(Perspective)))
            {
                return(null);
            }

            Handler.BeginUpdate("add perspective");
            var perspective = Perspective.CreateNew(this, name);

            Handler.EndUpdate();
            return(perspective);
        }
예제 #3
0
        public Perspective AddPerspective(string name = null)
        {
            if (!Handler.PowerBIGovernance.AllowCreate(typeof(Perspective)))
            {
                throw new PowerBIGovernanceException("Adding perspectives to this Power BI model is not supported.");
            }

            Handler.BeginUpdate("add perspective");
            var perspective = Perspective.CreateNew(this, name);

            Handler.EndUpdate();
            return(perspective);
        }
        public void PerspectiveTest()
        {
            DeleteTestPerspectives();

            var handler = new TabularModelHandler("localhost", "AdventureWorks");

            handler.Tree = new MockTree(handler.Model);

            var m = handler.Model;

            // Perspective which only includes a few select items:
            var pnIn = "Test Perspective Inclusive";

            Perspective.CreateNew(pnIn);
            m.Tables["Employee"].InPerspective[pnIn] = true;
            m.Tables["Date"].Hierarchies.InPerspective(pnIn, true);
            m.Tables["Internet Sales"].Measures.InPerspective(pnIn, true);
            m.Tables["Product"].Columns.InPerspective(pnIn, true);
            m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnIn] = true;

            // Perspective which includes everything except a few select items:
            var pnEx = "Test Perspective Exclusive";

            Perspective.CreateNew(pnEx);
            m.Tables.InPerspective(pnEx, true);
            m.Tables["Employee"].InPerspective[pnEx] = false;
            m.Tables["Date"].Hierarchies.InPerspective(pnEx, false);
            m.Tables["Internet Sales"].Measures.InPerspective(pnEx, false);
            m.Tables["Product"].Columns.InPerspective(pnEx, false);
            m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnEx] = false;

            handler.SaveDB();

            // Check on included perspective:
            Assert.IsTrue(m.Tables["Employee"].GetChildren().OfType <ITabularPerspectiveObject>().All(obj => obj.InPerspective[pnIn]));
            Assert.IsTrue(m.Tables["Employee"].InPerspective[pnIn]);
            Assert.IsTrue(m.Tables["Date"].Hierarchies.All(obj => obj.InPerspective[pnIn]));
            Assert.IsTrue(m.Tables["Internet Sales"].Measures.All(obj => obj.InPerspective[pnIn]));
            Assert.IsTrue(m.Tables["Product"].Columns.All(obj => obj.InPerspective[pnIn]));
            Assert.IsTrue(m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnIn]);
            Assert.AreEqual(1, m.Tables["Reseller Sales"].Measures.Count(obj => obj.InPerspective[pnIn]));
            Assert.IsTrue(m.Tables["Reseller Sales"].InPerspective[pnIn]);

            Assert.IsFalse(m.Tables["Geography"].GetChildren().OfType <ITabularPerspectiveObject>().Any(obj => obj.InPerspective[pnIn]));
            Assert.IsFalse(m.Tables["Geography"].InPerspective[pnIn]);
            Assert.IsFalse(m.Tables["Date"].Columns.Any(obj => obj.InPerspective[pnIn]));

            // Check on excluded perspective:
            Assert.IsFalse(m.Tables["Employee"].GetChildren().OfType <ITabularPerspectiveObject>().Any(obj => obj.InPerspective[pnEx]));
            Assert.IsFalse(m.Tables["Employee"].InPerspective[pnEx]);
            Assert.IsFalse(m.Tables["Date"].Hierarchies.Any(obj => obj.InPerspective[pnEx]));
            Assert.IsFalse(m.Tables["Internet Sales"].Measures.Any(obj => obj.InPerspective[pnEx]));
            Assert.IsFalse(m.Tables["Product"].Columns.Any(obj => obj.InPerspective[pnEx]));
            Assert.IsFalse(m.Tables["Reseller Sales"].Measures["Reseller Total Sales"].InPerspective[pnEx]);
            Assert.AreEqual(1, m.Tables["Reseller Sales"].Measures.Count(obj => !obj.InPerspective[pnEx]));
            Assert.IsTrue(m.Tables["Reseller Sales"].InPerspective[pnEx]);

            Assert.IsTrue(m.Tables["Geography"].GetChildren().OfType <ITabularPerspectiveObject>().All(obj => obj.InPerspective[pnEx]));
            Assert.IsTrue(m.Tables["Geography"].InPerspective[pnEx]);
            Assert.IsTrue(m.Tables["Date"].Columns.All(obj => obj.InPerspective[pnEx]));

            handler.UndoManager.Rollback();
            handler.SaveDB();

            // Check that perspectives were succesfully deleted:
            Assert.IsFalse(m.Perspectives.Contains(pnIn));
            Assert.IsFalse(m.Perspectives.Contains(pnEx));
        }