private static Dictionary <string, NamedValues <ZValue> > CreateImagePatches(PagePatch pagePatch) { Dictionary <string, NamedValues <ZValue> > imagePatches = null; if (pagePatch != null && pagePatch.Patches != null) { imagePatches = new Dictionary <string, NamedValues <ZValue> >(); foreach (BsonValue patch in pagePatch.Patches) { BsonDocument patchDoc = patch.AsBsonDocument; if (patchDoc.zGet("Type").zAsString().ToLower() == "image") { imagePatches.Add(patchDoc.zGet("Url").zAsString(), ParseNamedValues.ParseValues(patchDoc.zGet("Values").zAsString(), useLowercaseKey: true)); } } } return(imagePatches); }
//private IEnumerable<OXmlElement> ToOXmlElements(IEnumerable<HtmlPage> pages, string footerText = null) //private IEnumerable<OXmlElement> ToOXmlElements(IEnumerable<IEnumerable<OXmlElement>> pages, string footerText = null) //private IEnumerable<OXmlElement> ToOXmlElements(IEnumerable<OXmlPage> pages, string footerText = null) private IEnumerable <OXmlElement> ToOXmlElements(IEnumerable <HtmlPage> htmlPages, string footerText = null) { IEnumerable <OXmlElement> elements = GetDocDefaults().Union( GetStyles()).Union( GetDocSection()).Union( GetHeaderFooter(footerText)); bool first = true; //foreach (IEnumerable<OXmlElement> page in pages) //foreach (OXmlPage page in pages) foreach (HtmlPage htmlPage in htmlPages) { PagePatch patch = null; if (_patches != null && _patches.ContainsKey(htmlPage.Id)) { patch = _patches[htmlPage.Id]; } bool pageBreak = false; if (patch != null && patch.PageBreak) { pageBreak = true; } if (!first) { elements = elements.Union(GetPageBreak(pageBreak)); } first = false; //elements = elements.Union(GetTitle(string.Format(_frCulture, "{0:dd MMMM}", page.Date) + " : " + page.Title)); //elements = elements.Union(_htmlToOXmlElements.ToOXmlXElements(page.HtmlNodes, page.WebImages)); //elements = elements.Union(page.OXmlElements); //PageToOXmlElements(htmlPage, (options & OXmlDocOptions.ExportOXmlPage) == OXmlDocOptions.ExportOXmlPage) elements = elements.Union(PageToOXmlElements(htmlPage, CreateImagePatches(patch))); } return(elements); }