コード例 #1
0
        public void CreateCodeEmployeeTerritoriesAfterUnmap()
        {
            TableNode tn;

            PrepareEmployeeTerritories(out tn);
            DatabaseNode          dbn = (DatabaseNode)tn.Parent;
            IntermediateTableNode itn = (IntermediateTableNode)FindNode(dbn.Nodes, "EmployeeTerritories", typeof(IntermediateTableNode));

            itn.UnmapIntermediateTable(null, EventArgs.Empty);
            ApplicationController.Instance.GenerateAssembly();
            // There shouldn't be relations in the code
        }
コード例 #2
0
        public void UnmapIntermediateTable(IntermediateTableNode itn)
        {
            TableNode tn    = itn.OriginalTableNode;
            int       index = databaseNode.Nodes.IndexOf(itn);

            tn.Remove();             // Was inserted as node in itn.
            itn.Remove();
            databaseNode.Nodes.Insert(index, tn);
            tn.TreeView.SelectedNode = tn;
            for (int tableNr = 0; tableNr < 2; tableNr++)
            {
                RelatedTableInfo rti = itn.IntermediateTable[tableNr];
                RemoveRelationNodeFromTable(rti.Table, rti.ForeignKeyColumnName);
            }
        }
コード例 #3
0
        public void TestIntermediateTable()
        {
            TableNode tn;

            PrepareEmployeeTerritories(out tn);

            DatabaseNode dbn = (DatabaseNode)tn.Parent;

            IntermediateTableNode itn = (IntermediateTableNode)FindNode(dbn.Nodes, "EmployeeTerritories", typeof(IntermediateTableNode));

            Assertion.AssertNotNull("IntermediateTableNode not found", itn);
            Assertion.AssertEquals("Wrong original table", tn, itn.OriginalTableNode);
            Assertion.AssertEquals("Wrong image", itn.SelectedImageIndex, 13);

            tn = (TableNode)FindNode(dbn.Nodes, "Employees");
            RelationNode rn = (RelationNode)FindNode(tn.Nodes, "EmployeeID", typeof(RelationNode));

            Assertion.AssertNotNull("Relation node should exist #1", rn);

            tn = (TableNode)FindNode(dbn.Nodes, "Territories");
            rn = (RelationNode)FindNode(tn.Nodes, "TerritoryID", typeof(RelationNode));
            Assertion.AssertNotNull("Relation node should exist #2", rn);

            // Now unmap and test
            itn.UnmapIntermediateTable(null, EventArgs.Empty);

            itn = (IntermediateTableNode)FindNode(dbn.Nodes, "EmployeeTerritories", typeof(IntermediateTableNode));
            Assertion.AssertNull("itn should be null", itn);
            tn = (TableNode)FindNode(dbn.Nodes, "EmployeeTerritories", typeof(TableNode));
            Assertion.AssertNotNull("Table node should be back", tn);

            tn = (TableNode)FindNode(dbn.Nodes, "Employees");
            rn = (RelationNode)FindNode(tn.Nodes, "EmployeeID", typeof(RelationNode));
            Assertion.AssertNull("Relation node shouldn't be there", rn);

            tn = (TableNode)FindNode(dbn.Nodes, "Territories");
            rn = (RelationNode)FindNode(tn.Nodes, "TerritoryID", typeof(RelationNode));
            Assertion.AssertNull("Relation node shouldn't be there #2", rn);
        }
コード例 #4
0
        public void MapIntermediateTable(TableNode tn)
        {
            IntermediateTable     it  = new IntermediateTable(tn.Text);
            IntermediateTableNode itn = new IntermediateTableNode(it, tn);

            IList tableNodes = databaseNode.TableNodes;

            tableNodes.Remove(tn);

            IntermediateTableWizardModel model = new IntermediateTableWizardModel(itn, tableNodes);

            IWizardController controller = ApplicationController.wizardControllerFactory.Create
                                               ("IntermediateTableWizController", "IntTblWiz", "Intermediate Table Wizard");
            //controller.FrameSize = new Size(544, 416);
            DialogResult r = controller.Run(model);

            if (r == DialogResult.OK)
            {
                DatabaseNode parent = (DatabaseNode)tn.Parent;
                //tn.Parent.Nodes. Remove(tn);
                int index = parent.Nodes.IndexOf(tn);
                tn.Remove();
                tn.Parent.Nodes.Insert(index, itn);
                itn.TreeView.SelectedNode = itn;
                itn.Nodes.Add(tn);                  // This ensures persisting the column nodes with file/save.
                RelatedTableInfo rti0     = it[0];
                RelatedTableInfo rti1     = it[1];
                TableNode        relTn0   = null;
                TableNode        relTn1   = null;
                RelationNode     relNode0 = null;
                RelationNode     relNode1 = null;
                foreach (TableNode loopTn in tableNodes)
                {
                    if (loopTn.Text == rti0.Table)
                    {
                        relTn0 = loopTn;
                        if (rti0.RelationDirection != RelationDirection.DirectedToMe)
                        {
                            ForeignIntermediateTableRelation fitr = new ForeignIntermediateTableRelation(rti0, tn.Text);
                            relNode0 = new RelationNode(fitr, relTn0);
                            relTn0.Nodes.Add(relNode0);
                        }
                    }
                    if (loopTn.Text == rti1.Table)
                    {
                        relTn1 = loopTn;
                        if (rti1.RelationDirection != RelationDirection.DirectedToMe)
                        {
                            ForeignIntermediateTableRelation fitr = new ForeignIntermediateTableRelation(rti1, tn.Text);
                            relNode1 = new RelationNode(fitr, relTn1);
                            relTn1.Nodes.Add(relNode1);
                        }
                    }
                }
                if (relNode0 != null)
                {
                    relNode0.RelatedTableNode = relTn1;
                }
                if (relNode1 != null)
                {
                    relNode1.RelatedTableNode = relTn0;
                }
            }
        }
コード例 #5
0
 public IntermediateTableWizardModel(IntermediateTableNode intTableNode, IList tableNodes)
 {
     this.intTableNode = intTableNode;
     this.tableNodes   = tableNodes;
 }