private void DropCached(DataColumnCollection columnCollection, DataRelationCollection relationCollection)
        {
            if (_cachedColumn != null)
            {
                // unregister column listener
                _cachedColumn.PropertyChanged -= new PropertyChangedEventHandler(OnColumnPropertyChanged);

                // unregister column collection listener
                if (columnCollection != null)
                {
                    columnCollection.CollectionChanged -= new CollectionChangeEventHandlerDerived(OnColumnRemoved);
                }
                else if (_cachedColumn.Table != null)
                {
                    _cachedColumn.Table.Columns.CollectionChanged -= new CollectionChangeEventHandlerDerived(OnColumnRemoved);
                }

                _cachedColumn = null;
            }

            if (_cachedRelation != null)
            {
                // unregister relation collection listener
                if (relationCollection != null)
                {
                    relationCollection.CollectionChanged -= new CollectionChangeEventHandlerDerived(OnRelationRemoved);
                }
                else if (_cachedRelation.DataSet != null)
                {
                    _cachedRelation.DataSet.Relations.CollectionChanged -= new CollectionChangeEventHandlerDerived(OnRelationRemoved);
                }

                _cachedRelation = null;
            }
        }
Example #2
0
        public void Remove()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables["Customer"].Columns["custid"]
                                                            , _dataset.Tables["Order"].Columns["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables["Item"].Columns["itemid"]
                                                , _dataset.Tables["Order"].Columns["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);

            drcol.Remove(dr1);
            Assert.False(drcol.Contains(dr1.RelationName));
            drcol.Add(dr1);

            drcol.Remove("CustOrder");
            Assert.False(drcol.Contains("CustOrder"));
            drcol.Add(dr1);

            DataRelation drnull = null;

            drcol.Remove(drnull);

            DataRelation newdr = new DataRelation("newdr"
                                                  , _dataset.Tables["Customer"].Columns["custid"]
                                                  , _dataset.Tables["Order"].Columns["custid"]);

            AssertExtensions.Throws <ArgumentException>(null, () => drcol.Remove(newdr));
        }
Example #3
0
        public void RemoveAt()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables["Customer"].Columns["custid"]
                                                            , _dataset.Tables["Order"].Columns["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables["Item"].Columns["itemid"]
                                                , _dataset.Tables["Order"].Columns["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);

            try
            {
                drcol.RemoveAt(-1);
                Assert.False(true);
            }
            catch (IndexOutOfRangeException e)
            {
            }
            try
            {
                drcol.RemoveAt(101);
                Assert.False(true);
            }
            catch (IndexOutOfRangeException e)
            {
            }

            drcol.RemoveAt(1);
            Assert.False(drcol.Contains(dr2.RelationName));
            drcol.RemoveAt(0);
            Assert.False(drcol.Contains(dr1.RelationName));
        }
        public void Add()
        {
            DataRelationCollection drcol     = _dataset.Relations;
            DataColumn             parentCol = _dataset.Tables ["Customer"].Columns ["custid"];
            DataColumn             childCol  = _dataset.Tables ["Order"].Columns ["custid"];
            DataRelation           dr        = new DataRelation("CustOrder", parentCol, childCol);

            drcol.Add(dr);
            Assert.That(drcol [0].RelationName, Is.EqualTo("CustOrder"), "test#1");
            drcol.Clear();

            drcol.Add(parentCol, childCol);
            Assert.That(drcol.Count, Is.EqualTo(1), "test#2");
            drcol.Clear();

            drcol.Add("NewRelation", parentCol, childCol);
            Assert.That(drcol [0].RelationName, Is.EqualTo("NewRelation"), "test#3");
            drcol.Clear();

            drcol.Add("NewRelation", parentCol, childCol, false);
            Assert.That(drcol.Count, Is.EqualTo(1), "test#4");
            drcol.Clear();

            drcol.Add("NewRelation", parentCol, childCol, true);
            Assert.That(drcol.Count, Is.EqualTo(1), "test#5");
            drcol.Clear();
        }
        public void IndexOf()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables ["Customer"].Columns ["custid"]
                                                            , _dataset.Tables ["Order"].Columns ["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables ["Item"].Columns ["itemid"]
                                                , _dataset.Tables ["Order"].Columns ["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);

            Assert.That(drcol.IndexOf(dr1), Is.EqualTo(0), "test#1");
            Assert.That(drcol.IndexOf(dr2), Is.EqualTo(1), "test#2");

            Assert.That(drcol.IndexOf("CustOrder"), Is.EqualTo(0), "test#3");
            Assert.That(drcol.IndexOf("ItemOrder"), Is.EqualTo(1), "test#4");

            Assert.That(drcol.IndexOf(drcol [0]), Is.EqualTo(0), "test#5");
            Assert.That(drcol.IndexOf(drcol [1]), Is.EqualTo(1), "test#6");

            Assert.That(drcol.IndexOf("_noRelation_"), Is.EqualTo(-1), "test#7");
            DataRelation newdr = new DataRelation("newdr"
                                                  , _dataset.Tables ["Customer"].Columns ["custid"]
                                                  , _dataset.Tables ["Order"].Columns ["custid"]);

            Assert.That(drcol.IndexOf(newdr), Is.EqualTo(-1), "test#8");
        }
        public void RemoveAt()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables ["Customer"].Columns ["custid"]
                                                            , _dataset.Tables ["Order"].Columns ["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables ["Item"].Columns ["itemid"]
                                                , _dataset.Tables ["Order"].Columns ["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);

            try {
                drcol.RemoveAt(-1);
                Assert.Fail("the index was out of bound: must have failed");
            } catch (IndexOutOfRangeException e) {
            }
            try {
                drcol.RemoveAt(101);
                Assert.Fail("the index was out of bound: must have failed");
            } catch (IndexOutOfRangeException e) {
            }

            drcol.RemoveAt(1);
            Assert.That(drcol.Contains(dr2.RelationName), Is.False, "test#5");
            drcol.RemoveAt(0);
            Assert.That(drcol.Contains(dr1.RelationName), Is.False, "test#6");
        }
Example #7
0
        private void ProcessMemberNames(DesignTable designTable)
        {
            if (designTable.DesignColumns != null)
            {
                foreach (DesignColumn column in designTable.DesignColumns)
                {
                    this.ProcessColumnRelatedNames(column);
                }
            }
            DataRelationCollection childRelations = designTable.DataTable.ChildRelations;

            if (childRelations != null)
            {
                foreach (DataRelation relation in childRelations)
                {
                    DesignRelation relation2 = this.FindCorrespondingDesignRelation(designTable, relation);
                    this.ProcessChildRelationName(relation2);
                }
            }
            DataRelationCollection parentRelations = designTable.DataTable.ParentRelations;

            if (parentRelations != null)
            {
                foreach (DataRelation relation3 in parentRelations)
                {
                    DesignRelation relation4 = this.FindCorrespondingDesignRelation(designTable, relation3);
                    this.ProcessParentRelationName(relation4);
                }
            }
            this.ProcessEventNames(designTable);
        }
Example #8
0
        public void Add()
        {
            DataRelationCollection drcol     = _dataset.Relations;
            DataColumn             parentCol = _dataset.Tables["Customer"].Columns["custid"];
            DataColumn             childCol  = _dataset.Tables["Order"].Columns["custid"];
            DataRelation           dr        = new DataRelation("CustOrder", parentCol, childCol);

            drcol.Add(dr);
            Assert.Equal("CustOrder", drcol[0].RelationName);
            drcol.Clear();

            drcol.Add(parentCol, childCol);
            Assert.Equal(1, drcol.Count);
            drcol.Clear();

            drcol.Add("NewRelation", parentCol, childCol);
            Assert.Equal("NewRelation", drcol[0].RelationName);
            drcol.Clear();

            drcol.Add("NewRelation", parentCol, childCol, false);
            Assert.Equal(1, drcol.Count);
            drcol.Clear();

            drcol.Add("NewRelation", parentCol, childCol, true);
            Assert.Equal(1, drcol.Count);
            drcol.Clear();
        }
 private void UpdateTables()
 {
     this.cars      = dB_OwnersCarsDataSet.Car;
     this.owners    = dB_OwnersCarsDataSet.Owner;
     this.carOwners = dB_OwnersCarsDataSet.CarOwner;
     this.relations = dB_OwnersCarsDataSet.Relations;
 }
        public void AddException1()
        {
            DataRelationCollection drcol  = _dataset.Relations;
            DataRelation           drnull = null;

            drcol.Add(drnull);
        }
        public static bool Contains(this DataRelationCollection relationList, DataRelation relation)
        {
            foreach (DataRelation r in relationList)
            {
                int matches = 0;
                foreach (DataColumn c in r.ChildColumns)
                {
                    if (relation.ChildColumns.Contains(c))
                    {
                        matches++;
                    }
                }

                foreach (DataColumn c in r.ParentColumns)
                {
                    if (relation.ParentColumns.Contains(c))
                    {
                        matches++;
                    }
                }

                if (r.ChildColumns.Length == (matches * 2))
                {
                    return(true);
                }
            }
            return(false);
        }
        public void IndexOf()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables["Customer"].Columns["custid"]
                                                            , _dataset.Tables["Order"].Columns["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables["Item"].Columns["itemid"]
                                                , _dataset.Tables["Order"].Columns["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);

            AssertEquals("test#1", 0, drcol.IndexOf(dr1));
            AssertEquals("test#2", 1, drcol.IndexOf(dr2));

            AssertEquals("test#3", 0, drcol.IndexOf("CustOrder"));
            AssertEquals("test#4", 1, drcol.IndexOf("ItemOrder"));

            AssertEquals("test#5", 0, drcol.IndexOf(drcol[0]));
            AssertEquals("test#6", 1, drcol.IndexOf(drcol[1]));

            AssertEquals("test#7", -1, drcol.IndexOf("_noRelation_"));
            DataRelation newdr = new DataRelation("newdr"
                                                  , _dataset.Tables["Customer"].Columns["custid"]
                                                  , _dataset.Tables["Order"].Columns["custid"]);

            AssertEquals("test#8", -1, drcol.IndexOf(newdr));
        }
Example #13
0
        static IEnumerable <IGrouping <string, XmlNode> > GetOrders(String[] xmlPaths)
        {
            XmlDocument[]  xmlDocs = new XmlDocument[xmlPaths.Length];
            List <XmlNode> orders  = new List <XmlNode>();

            for (int i = 0; i < xmlPaths.Length; i++)
            {
                xmlDocs[i] = new XmlDocument();
                xmlDocs[i].Load(xmlPaths[i]);

                XmlReader reader = new XmlNodeReader(xmlDocs[i]);
                DataSet   newDs  = new DataSet();
                newDs.ReadXml(reader);
                DataTable dt = newDs.Tables[0];
                DataRelationCollection children = dt.ChildRelations;


                foreach (XmlNode xmlNode in xmlDocs[i].DocumentElement.ChildNodes)
                {
                    orders.Add(xmlNode);
                }
            }

            IEnumerable <IGrouping <string, XmlNode> > query = from order in orders
                                                               group order by order.FirstChild.InnerText;

            return(query);
        }
Example #14
0
        public void IndexOf()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables["Customer"].Columns["custid"]
                                                            , _dataset.Tables["Order"].Columns["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables["Item"].Columns["itemid"]
                                                , _dataset.Tables["Order"].Columns["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);

            Assert.Equal(0, drcol.IndexOf(dr1));
            Assert.Equal(1, drcol.IndexOf(dr2));

            Assert.Equal(0, drcol.IndexOf("CustOrder"));
            Assert.Equal(1, drcol.IndexOf("ItemOrder"));

            Assert.Equal(0, drcol.IndexOf(drcol[0]));
            Assert.Equal(1, drcol.IndexOf(drcol[1]));

            Assert.Equal(-1, drcol.IndexOf("_noRelation_"));
            DataRelation newdr = new DataRelation("newdr"
                                                  , _dataset.Tables["Customer"].Columns["custid"]
                                                  , _dataset.Tables["Order"].Columns["custid"]);

            Assert.Equal(-1, drcol.IndexOf(newdr));
        }
 private void UpdateTables()
 {
     _cars      = dB_OwnersCarsDataSet.Car;
     _marks     = dB_OwnersCarsDataSet.Mark;
     _models    = dB_OwnersCarsDataSet.Model;
     _relations = dB_OwnersCarsDataSet.Relations;
 }
		public void AddRange(DataRelationCollection dataRelations)
		{
			if (dataRelations == null)
				throw ExceptionBuilder.ArgumentNull("dataRelations");

			foreach (DataRelation dataRelation in dataRelations)
				Add(dataRelation);
		}
Example #17
0
        public CuLeRuleFactory(DataTableCollection i_Tables, DataRelationCollection i_Relations, List <String> i_States)
        {
            m_errorMessages = new List <ErrorMessage>();

            m_Tables = i_Tables;

            m_Relations = i_Relations;

            m_States = i_States;
        }
        public void AddException2()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables ["Customer"].Columns ["custid"]
                                                            , _dataset.Tables ["Order"].Columns ["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr1);
        }
        //[Test]
        public void ToStringTest()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables ["Customer"].Columns ["custid"]
                                                            , _dataset.Tables ["Order"].Columns ["custid"]);

            drcol.Add(dr1);
            Assert.That(drcol.ToString(), Is.EqualTo("System.Data.DataRelationCollection"), "test#1");
            Console.WriteLine(drcol.ToString());
        }
Example #20
0
 public void AddException2()
 {
     AssertExtensions.Throws <ArgumentException>(null, () =>
     {
         DataRelationCollection drcol = _dataset.Relations;
         DataRelation dr1             = new DataRelation("CustOrder"
                                                         , _dataset.Tables["Customer"].Columns["custid"]
                                                         , _dataset.Tables["Order"].Columns["custid"]);
         drcol.Add(dr1);
         drcol.Add(dr1);
     });
 }
Example #21
0
        public void Clear()
        {
            DataRelationCollection drcol     = _dataset.Relations;
            DataColumn             parentCol = _dataset.Tables["Customer"].Columns["custid"];
            DataColumn             childCol  = _dataset.Tables["Order"].Columns["custid"];

            drcol.Add(new DataRelation("CustOrder", parentCol, childCol));
            drcol.Add("ItemOrder", _dataset.Tables["Item"].Columns["itemid"]
                      , _dataset.Tables["Order"].Columns["itemid"]);
            drcol.Clear();
            Assert.Equal(0, drcol.Count);
        }
        public void AddException3()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("DuplicateName"
                                                            , _dataset.Tables ["Customer"].Columns ["custid"]
                                                            , _dataset.Tables ["Order"].Columns ["custid"]);
            DataRelation dr2 = new DataRelation("DuplicateName"
                                                , _dataset.Tables ["Item"].Columns ["itemid"]
                                                , _dataset.Tables ["Order"].Columns ["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);
        }
Example #23
0
 private static bool ExistsParentRows(DataRow row, DataRelationCollection relations)
 {
     DataRow[] rows;
     foreach (DataRelation dataRelation in relations)
     {
         rows = row.GetParentRows(dataRelation);
         if (rows != null && rows.Length > 0)
         {
             return(true);
         }
     }
     return(false);
 }
Example #24
0
        private static int TablesConnectedness(DataTable parentTable, DataTable childTable)
        {
            int num = 0;
            DataRelationCollection parentRelations = childTable.ParentRelations;

            for (int i = 0; i < parentRelations.Count; i++)
            {
                if (parentRelations[i].ParentTable == parentTable)
                {
                    num++;
                }
            }
            return(num);
        }
Example #25
0
        public void AddRange()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables["Customer"].Columns["custid"]
                                                            , _dataset.Tables["Order"].Columns["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables["Item"].Columns["itemid"]
                                                , _dataset.Tables["Order"].Columns["custid"]);

            drcol.AddRange(new DataRelation[] { dr1, dr2 });

            Assert.Equal("CustOrder", drcol[0].RelationName);
            Assert.Equal("ItemOrder", drcol[1].RelationName);
        }
Example #26
0
        void WriteDataRelations(DataRelationCollection dataRelations)
        {
            if (dataRelations.Count == 0)
            {
                return;
            }

            _writer.WritePropertyName("relations");
            _writer.WriteStartObject();
            foreach (DataRelation dataRelation in dataRelations)
            {
                WriteDataRelation(dataRelation);
            }
            _writer.WriteEndObject();
        }
Example #27
0
        public void Contains()
        {
            DataRelationCollection drcol     = _dataset.Relations;
            DataColumn             parentCol = _dataset.Tables["Customer"].Columns["custid"];
            DataColumn             childCol  = _dataset.Tables["Order"].Columns["custid"];
            DataRelation           dr        = new DataRelation("CustOrder", parentCol, childCol);

            drcol.Add(dr);
            Assert.True(drcol.Contains(dr.RelationName));
            string drnull = "";

            Assert.False(drcol.Contains(drnull));
            dr = new DataRelation("newRelation", childCol, parentCol);
            Assert.False(drcol.Contains("NoSuchRelation"));
        }
Example #28
0
        public void CanRemove()
        {
            DataRelationCollection drcol     = _dataset.Relations;
            DataColumn             parentCol = _dataset.Tables["Customer"].Columns["custid"];
            DataColumn             childCol  = _dataset.Tables["Order"].Columns["custid"];
            DataRelation           dr        = new DataRelation("CustOrder", parentCol, childCol);

            drcol.Add(dr);
            Assert.True(drcol.CanRemove(dr));
            Assert.False(drcol.CanRemove(null));
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables["Item"].Columns["itemid"]
                                                , _dataset.Tables["Order"].Columns["custid"]);

            Assert.False(drcol.CanRemove(dr2));
        }
        public void Remove()
        {
            DataRelationCollection drcol = _dataset.Relations;
            DataRelation           dr1   = new DataRelation("CustOrder"
                                                            , _dataset.Tables["Customer"].Columns["custid"]
                                                            , _dataset.Tables["Order"].Columns["custid"]);
            DataRelation dr2 = new DataRelation("ItemOrder"
                                                , _dataset.Tables["Item"].Columns["itemid"]
                                                , _dataset.Tables["Order"].Columns["custid"]);

            drcol.Add(dr1);
            drcol.Add(dr2);

            drcol.Remove(dr1);
            AssertEquals("test#1", false, drcol.Contains(dr1.RelationName));
            drcol.Add(dr1);

            drcol.Remove("CustOrder");
            AssertEquals("test#2", false, drcol.Contains("CustOrder"));
            drcol.Add(dr1);

            DataRelation drnull = null;

            drcol.Remove(drnull);

            DataRelation newdr = new DataRelation("newdr"
                                                  , _dataset.Tables["Customer"].Columns["custid"]
                                                  , _dataset.Tables["Order"].Columns["custid"]);

            try
            {
                drcol.Remove(newdr);
                Fail("Err: removed relation which not part of collection");
            }
            catch (Exception e)
            {
                AssertEquals("test#4", typeof(ArgumentException), e.GetType());
            }
            try
            {
                drcol.Remove("newdr");
                Fail("Err: removed relation which not part of collection");
            }
            catch (ArgumentException e)
            {
            }
        }
Example #30
0
        public string GetCurrentColumnName()
        {
            DataRelationCollection dr = geoSystemDBDataSet1.Relations;

            foreach (DataRelation temp in dr)
            {
                if (temp.ParentTable.TableName == comboBox1.Text && temp.ChildTable.TableName == comboBox2.Text)
                {
                    return(temp.ChildColumns[0].ColumnName);
                }
                else if (temp.ChildTable.TableName == comboBox1.Text && temp.ParentTable.TableName == comboBox2.Text)
                {
                    return(temp.ParentColumns[0].ColumnName);
                }
            }
            return("");
        }