コード例 #1
0
        public void It_Should_Serialise_To_This()
        {
            const string expectedXML = FullEntitySetXml;

            EntitySet entitySet = new EntitySetImpl();
            entitySet.AddEntity(When_Serialising_An_Empty_Entity.GetEntity());
            entitySet.AddReference(When_Serialising_An_Reference_With_All_Fields_Set.GetReference());

            string outputXML = new EntitySetSerialisationScheme().SerialiseEntitySet(entitySet);
            outputXML = XmlSqueezer.RemoveWhitespaceBetweenElements(outputXML);
            Assert.That(outputXML, Is.EqualTo(expectedXML));
        }
コード例 #2
0
        public void Setup()
        {
            database = new Database("Db1");
            entitySet = new EntitySetImpl();

            table = new Table("Table1");
            table.AddColumn(new Column("Column1"));
            entity1 = new EntityImpl("Entity1");
            entity1.AddProperty(new PropertyImpl("Property1"));
            entity2 = new EntityImpl("Entity2");

            entity2.AddProperty(new PropertyImpl("Property2"));
            var reference = entity1.CreateReferenceTo(entity2);
            reference.Identifier = new Guid("11111111-1111-1111-1111-111111111111");
            reference.End1Name = "end1";
            reference.End2Name = "end2";
            entitySet.AddReference(reference);

            database.AddTable(table);
            entitySet.AddEntity(entity1);
        }
コード例 #3
0
        public static Reference GetReference()
        {
            Reference reference = new ReferenceImpl();

            var mappingSet = new MappingSetImpl();
            var entitySet = new EntitySetImpl();
            entitySet.AddReference(reference);
            mappingSet.EntitySet = entitySet;

            return reference;
        }
コード例 #4
0
        public EntitySet DeserialiseEntitySet(XmlNode node, IDatabase database)
        {
            if (string.IsNullOrEmpty(node.InnerXml))
            {
                return(new EntitySetImpl());
            }

            var set = new EntitySetImpl();

            Version = int.Parse(node.Attributes["Version"].Value);

            Dictionary <XmlNode, Entity> entityNodes = new Dictionary <XmlNode, Entity>();

            var entityNodeList = node.SelectNodes("Entities/Entity");

            if (entityNodeList != null)
            {
                foreach (XmlNode entityNode in entityNodeList)
                {
                    Entity entity = DeserialiseEntity(entityNode);
                    entityNodes[entityNode] = entity;
                    set.AddEntity(entity);
                }
            }

            ProcessScriptBase(set, node);

            // Second processing pass
            if (entityNodeList != null)
            {
                foreach (XmlNode entityNode in entityNodeList)
                {
                    PostProcessEntity(set, database, entityNodes[entityNode], entityNode);
                }
            }

            var refNodes = node.SelectNodes("References/Reference");

            if (refNodes != null)
            {
                foreach (XmlNode referenceNode in refNodes)
                {
                    Reference reference = DeserialiseReference(referenceNode, set);

                    if (reference.Entity1 != null &&
                        reference.Entity2 != null)
                    {
                        reference.Entity1.AddReference(reference);
                        if (reference.Entity1 != reference.Entity2)
                        {
                            reference.Entity2.AddReference(reference);
                        }

                        set.AddReference(reference);
                    }
                }
            }

            var componentSpecNodes = node.SelectNodes("ComponentSpecifications/ComponentSpecification");

            if (componentSpecNodes != null)
            {
                foreach (XmlNode specNode in componentSpecNodes)
                {
                    DeserialiseComponentSpecification(specNode, set);
                }
            }

            if (entityNodeList != null)
            {
                foreach (XmlNode entityNode in entityNodeList)
                {
                    var entity = entityNodes[entityNode];
                    // Key requires Components to have been deserialised first.
                    entity.Key = DeserialiseKey(entityNode.SelectSingleNode("Key"), entity);
                }
            }
            return(set);
        }