2016-06-02 10 views
1

Ich möchte einen E-Mail-Bericht an alle Agenten per E-Mail senden und diese PDF muss für jeden Agenten dynamisch generiert werden. Ich habe ItextSharp dafür verwendet, aber das erfordert zu viel Fummelei mit HTML-Code. Schließlich bin ich auf Rotativa gelandet, es funktioniert gut, aber es gibt fast mehr als ein paar tausend Agenten und ich habe eine separate Business-Schicht, um diese Aufgabe zu erledigen. Wie mache ich Rotativa in der Business-Schicht arbeiten?C# MVC 5 Konvertieren von HTML-Ansicht in PDF zum Senden einer E-Mail-Anlage in Bussiness Layer

var pdfResult = new ViewAsPdf("CreateIMDStatmentReport", _IReportManagement.GetIMDStatmentReportByIMDCode(imdCode)); 
var binary = pdfResult.BuildPdf(this.ControllerContext);  
System.Net.Mail.Attachment data = new Attachment(new MemoryStream(binary), MediaTypeNames.Application.Pdf); 
  1. Wie ein Blick in separaten Business Layer bekommen?
  2. Wie gehe ich mit ControllerContext um?

Hinweis: In Zukunft wird diese Ansicht in der Datenbank gespeichert werden und wird als VirtualPath

+0

Ty! @ManfredRadlwimmer für die Bearbeitung! – knucklehead

Antwort

0

ich es gelöst gemacht werden!

Für die view habe ich die absoluten Pfade verwendet.
Und für die ControllerContext, übergab ich sein Objekt als Parameter vom Controller.
Auch benutzte ich System.Web.Mvc Paket

Vielen Dank an alle!

0

Sound wie Sie benötigen Razor Rendern außerhalb ASP.NET MVC-Projekt, werfen Sie einen Blick auf diese Diskussion zu diesem Thema (Link unten). Sie müssen noch herausfinden, ob das mit Rotavia funktioniert, aber ich würde damit anfangen.

Is it possible to use Razor View Engine outside asp.net

Aus der Diskussion, folgendem Rahmen adressieren Sie scenarion, aber auch hier kann ich nicht bestätigen, dass es mit Rotavia arbeiten, vielleicht können Sie eine andere HTML-to-PDF-Konverter-Komponente verwenden.

"Das Framework hilft Ihnen, wenn Sie wollen Razor verwenden Berichte, E-Mails, Quellcode, HTML, oder was auch immer, außerhalb der MVC-Umgebung zu machen"

http://www.codeproject.com/Articles/423141/Razor-2-0-template-engine-supporting-layouts

+0

Ok, ich sehe, du hast es gelöst. Wie auch immer, ich werde eine Antwort nur als eine andere Option für die Leute zu diskutieren überlassen. –

+0

Vielen Dank! für die Antwort @EDP. – knucklehead