Habanero.BO.ObjectTreeXmlReader.Read C# (CSharp) Method

Read() public method

Reads from a stream. Uses the given IBusinessObjectXmlReader to create the objects from the xml. Any errors that occur when setting properties on objects will be added to the ReadResult property. Once this method returns, check the Successful flag of the ReadResult to see if there are errors, and check the Message flag to see what the errors were.
public Read ( XmlReader xmlReader, IBusinessObjectXmlReader boReader ) : IEnumerable
xmlReader XmlReader The xml reader to use
boReader IBusinessObjectXmlReader The to use. This object /// converts the xml data into business objects, so you can control how the objects are deserialised by /// creating your own.
return IEnumerable
        public IEnumerable<IBusinessObject> Read(XmlReader xmlReader, IBusinessObjectXmlReader boReader)
        {
            BOSequenceNumber.LoadNumberGenClassDef();
            var objects = new List<IBusinessObject>();
            var bos = boReader.Read(xmlReader);
            bos.ForEach(bo => objects.Add(ConfigureObjectAfterLoad(bo)));

            ReadResult = boReader.PropertyReadExceptions.Count() == 0 
                 ? new Result(true) 
                 : new Result(false, BuildExceptionMessage(boReader.PropertyReadExceptions));
            return objects;
        }

Same methods

ObjectTreeXmlReader::Read ( Stream stream ) : IEnumerable
ObjectTreeXmlReader::Read ( Stream stream, IBusinessObjectXmlReader boReader ) : IEnumerable
ObjectTreeXmlReader::Read ( XmlReader xmlReader ) : IEnumerable
ObjectTreeXmlReader::Read ( string xml ) : IEnumerable

Usage Example

        public void Read_ShouldLoadObjectsAsNew_WhenNotInExistingDataStore()
        {
            //---------------Set up test pack-------------------
            LoadMyBOClassDefsWithNoUIDefs();
            var savedDataStore = new DataStoreInMemory();
            var savedBo = new MyBO();
            var transactionCommitter = new TransactionCommitterInMemory(savedDataStore);
            transactionCommitter.AddBusinessObject(savedBo);
            transactionCommitter.CommitTransaction();
            var writeStream = GetStreamForDataStore(savedDataStore);
            var reader = new ObjectTreeXmlReader();
            //---------------Assert Precondition----------------
            Assert.AreEqual(1, savedDataStore.Count);
            //---------------Execute Test ----------------------
            var loadedObjects = reader.Read(writeStream);
            //---------------Test Result -----------------------
            var businessObjects = loadedObjects.ToList();
            Assert.AreEqual(1, businessObjects.Count);
            var loadedMyBo = (MyBO)businessObjects[0];
            Assert.AreNotSame(savedBo, loadedMyBo);

            Assert.IsTrue(loadedMyBo.Status.IsNew, "Should not be New");
            Assert.IsFalse(loadedMyBo.Status.IsDeleted, "Should not be Deleted");
        }
All Usage Examples Of Habanero.BO.ObjectTreeXmlReader::Read