public async Task <ActionResult> ExportReportrtf([FromBody] ReportRequest[] request) { var ucRequest = new UcExportReportRequestComposite { Reports = request.Select(r => { var concl = r.Conclusion; var pairs = r.Pairs; var req = new UcExportReportRequest { Conclusion = new Conclusion(concl.Title, concl.ReportDisplay, concl.LegalBasis), Pairs = pairs.Select(x => new ReportPair(x.Index, x.Question, x.Answer)).ToArray(), ConclusionTranslation = r.ConclusionTranslation, AboutCaseTranslation = r.AboutCaseTranslation, CaseReportTranslation = r.CaseReportTranslation, LegalBasisTranslation = r.LegalBasisTranslation }; return(req); }).ToArray(), ExportType = HtmlExportTypes.Rtf, }; var result = await this.exportReportUseCase.Handle(ucRequest); return(this.File(result.FileContent, "application/rtf")); }
public async Task <UcExportReportResponse> Handle(UcExportReportRequestComposite message) { var html = new StringBuilder(); html.Append("<!DOCTYPE html lang=\"en\"><head><meta charset=\"utf-8\"><title>Interlex Decision Support</title>" + $"<style>{InsertCss()}</style></head><body>"); html.Append("<div class=\"report-dialog\">"); html.Append("<div class=\"ui-dialog-titlebar\">"); html.Append($"<span class=\"ui-dialog-title\">{message.Reports[0].CaseReportTranslation}</span>"); html.Append("</div>"); html.Append("<div class=\"ui-dialog-content\">"); // closed in the end foreach (var report in message.Reports) { //ABOUT html.Append("<div class=\"ui-card-body\">"); html.Append($"<div class=\"ui-card-title\">{report.AboutCaseTranslation}</div>"); html.Append("<div class=\"ui-card-content\">"); foreach (var qaPair in report.Pairs) { html.Append("<div>"); html.Append($"<p style=\"font-weight: bold;\">{qaPair.Index}. {qaPair.Question}</p>"); html.Append($"<div style=\"margin-left: 20px;\">- {qaPair.Answer}</div>"); html.Append("</div>"); } html.Append("</div>"); //closes ui-card-content html.Append("</div>"); // closes ui-card-body //ABOUT //CONCLUSION html.Append("<div class=\"ui-card-body\">"); html.Append($"<div class=\"ui-card-title\">{report.ConclusionTranslation}</div>"); html.Append("<div class=\"ui-card-content\">"); html.Append($"<p>{report.Conclusion.Title}</p><br><p>{report.Conclusion.ReportDisplay}</p>"); html.Append("</div>"); //closes ui-card-content html.Append("</div>"); // closes ui-card-body //CONCLUSION // LEGAL BASIS html.Append("<div class=\"ui-card-body\">"); html.Append($"<div class=\"ui-card-title\">{report.LegalBasisTranslation}</div>"); html.Append("<div class=\"ui-card-content\">"); html.Append($"<p>{report.Conclusion.LegalBasis}</p>"); html.Append("</div>"); //closes ui-card-content html.Append("</div>"); // closes ui-card-body // LEGAL BASIS } html.Append("</div></div></body></html>"); // File.WriteAllText(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "reportexport.html"), html.ToString()); var result = await this.converter.ConvertHtml(html.ToString(), message.ExportType); return(new UcExportReportResponse(result, true)); }