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