public async Task TestReportAsync() { var outPutDirectory = "Data\\Temp"; var tempPathDirectory = "Data\\Templates"; var model = new { Name = "Con bướm xinh", Job = 100 }; string headerTemplate = "header.html"; string bodyTemplate = "email.html"; string footerTemplate = "footer.html"; var htmlBody = await File.ReadAllTextAsync(Path.Combine(tempPathDirectory, bodyTemplate)); var htmlHeader = await File.ReadAllTextAsync(Path.Combine(tempPathDirectory, headerTemplate)); var htmlFooter = await File.ReadAllTextAsync(Path.Combine(tempPathDirectory, footerTemplate)); var reportingFactory = new ReportingFactory(_loggerFactory); var reportModel = reportingFactory.CreateReportingModel(htmlHeader, htmlFooter, model); // factory return context using (var reportContext = reportingFactory.CreateReportContext(outPutDirectory, tempPathDirectory)) { IHtmlRenderTask viewEngine = reportingFactory.CreateFluidHtmlRenderTask(reportContext); IHtmlRenderTask preMailerEngine = reportingFactory.CreateCleanupHtmlRenderTask(reportContext); var body = await viewEngine.RenderAsync(reportModel, htmlBody); body = await preMailerEngine.RenderAsync(reportModel, body); File.WriteAllBytes(Path.Combine(outPutDirectory, "tententen.html"), Encoding.UTF8.GetBytes(body)); } Assert.True(true); }
public async Task <string> GenerateHtmlReportAsync(string reportTemplate, object model) { var htmlBody = File.ReadAllText(Path.Combine(_reportingSettings.TempPathDirectory, reportTemplate)); var htmlHeader = File.ReadAllText(Path.Combine(_reportingSettings.TempPathDirectory, _reportingSettings.HeaderTemplate)); var htmlFooter = File.ReadAllText(Path.Combine(_reportingSettings.TempPathDirectory, _reportingSettings.FooterTemplate)); var reportModel = _reportingFactory.CreateReportingModel(htmlHeader, htmlFooter, model); using (var reportContext = _reportingFactory.CreateReportContext(_reportingSettings.OutPutDirectory, _reportingSettings.TempPathDirectory)) { IHtmlRenderTask viewEngine = _reportingFactory.CreateFluidHtmlRenderTask(reportContext); IHtmlRenderTask emailEngine = _reportingFactory.CreateCleanupHtmlRenderTask(reportContext); var body = await viewEngine.RenderAsync(reportModel, htmlBody); return(await emailEngine.RenderAsync(reportModel, body)); } }