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"));
        }
Ejemplo n.º 2
0
        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));
        }