Exemplo n.º 1
0
        private bool LoadStreamIntoDocumentElement(Stream dataStream)
        {
            Document            = XDocument.Load(dataStream);
            dataStream.Position = 0;
            if (Document == null)
            {
                ErrorLog.AppendError(ImportErrorCode.InvalidDocument);
                return(false);
            }

            var documentRoot = Document.Element(XmlConstants.Root);

            if (documentRoot == null)
            {
                throw new Exception("can't import - document doesn't have a root element");
            }

            DocumentElements = documentRoot.Elements(XmlConstants.Entity).ToList();
            if (!DocumentElements.Any())
            {
                ErrorLog.AppendError(ImportErrorCode.InvalidDocument);
                return(false);
            }

            // Check the content type of the document (it can be found on each element in the Type attribute)
            var documentTypeAttribute = DocumentElements.First().Attribute(XmlConstants.EntityTypeAttribute);

            if (documentTypeAttribute?.Value == null ||
                documentTypeAttribute.Value != ContentType.Name.RemoveSpecialCharacters())
            {
                ErrorLog.AppendError(ImportErrorCode.InvalidRoot);
                return(false);
            }

            return(true);
        }