BetterCms.Module.Blog.Services.DefaultBlogMLService.DeserializeXMLStream C# (CSharp) Method

DeserializeXMLStream() public method

public DeserializeXMLStream ( Stream stream ) : BlogMLBlog
stream Stream
return BlogMLBlog
        public BlogMLBlog DeserializeXMLStream(Stream stream)
        {
            try
            {
                stream.Position = 0;

                var readerSettings = new XmlReaderSettings();
                readerSettings.ConformanceLevel = ConformanceLevel.Document;
                readerSettings.CheckCharacters = true;
                readerSettings.ValidationType = ValidationType.None;

                var xmlReader = XmlReader.Create(stream, readerSettings);
                var xdoc = new XmlDocument();
                xdoc.Load(xmlReader);
            }
            catch (Exception exc)
            {
                var message = BlogGlobalization.ImportBlogPosts_FileIsNotValidXML_Message;
                var logMessage = "Provided file is not a valid XML file.";
                throw new ValidationException(() => message, logMessage, exc);
            }

            BlogMLBlog blogPosts;
            try
            {
                stream.Position = 0;
                blogPosts = BlogMLSerializer.Deserialize(stream);
            }
            catch (Exception exc)
            {
                var message = BlogGlobalization.ImportBlogPosts_FailedToDeserializeXML_Message;
                var logMessage = "Failed to deserialize provided XML file.";
                throw new ValidationException(() => message, logMessage, exc);
            }

            stream.Close();
            stream.Dispose();

            return blogPosts;
        }