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); }