internal static DocX PostLoad(ref Package package)
{
DocX document = new DocX(null, null);
document.package = package;
document.Document = document;
#region MainDocumentPart
document.mainPart = package.GetParts().Where
(
p => p.ContentType.Equals(HelperFunctions.DOCUMENT_DOCUMENTTYPE, StringComparison.CurrentCultureIgnoreCase) ||
p.ContentType.Equals(HelperFunctions.TEMPLATE_DOCUMENTTYPE, StringComparison.CurrentCultureIgnoreCase)
).Single();
using (TextReader tr = new StreamReader(document.mainPart.GetStream(FileMode.Open, FileAccess.Read)))
document.mainDoc = XDocument.Load(tr, LoadOptions.PreserveWhitespace);
#endregion
PopulateDocument(document, package);
using (TextReader tr = new StreamReader(document.settingsPart.GetStream()))
document.settings = XDocument.Load(tr);
document.paragraphLookup.Clear();
foreach (var paragraph in document.Paragraphs)
{
if (!document.paragraphLookup.ContainsKey(paragraph.endIndex))
document.paragraphLookup.Add(paragraph.endIndex, paragraph);
}
return document;
}