public static async System.Threading.Tasks.Task RunAsync([QueueTrigger("eventqueue", Connection = "AzureWebJobsStorage")] CreateReportRequested request, [Table("downloads", Connection = "AzureWebJobsStorage")] IAsyncCollector <UserReportRecord> download, [Blob("user-reports", Connection = "AzureWebJobsStorage")] CloudBlobContainer container, ILogger log) { if (await container.CreateIfNotExistsAsync()) { var permissions = await container.GetPermissionsAsync(); permissions.PublicAccess = BlobContainerPublicAccessType.Blob; await container.SetPermissionsAsync(permissions); } var blob = container.GetBlockBlobReference($"{request.Id}.pdf"); var pdfFile = PDFGenerator.GeneratePDF(request); await blob.UploadFromByteArrayAsync(pdfFile, 0, pdfFile.Length); var url = blob.Uri.AbsoluteUri; await download.AddAsync(new UserReportRecord { PartitionKey = "UserReport", RowKey = request.Id.ToString(), Name = $"{request.FirstName} {request.LastName}", Url = url }); }
public static void Run( [QueueTrigger("eventqueue", Connection = "AzureWebJobsStorage")] CreateReportRequested request, [Table("downloads", Connection = "AzureWebJobsStorage")] out UserReportRecord download, [Blob("user-reports", Connection = "AzureWebJobsStorage")] CloudBlobContainer container, TraceWriter log) { if (container.CreateIfNotExists()) { var permissions = container.GetPermissions(); permissions.PublicAccess = BlobContainerPublicAccessType.Blob; container.SetPermissions(permissions); } var blob = container.GetBlockBlobReference($"{request.Id}.pdf"); var pdfFile = PDFGenerator.GeneratePDF(request); blob.UploadFromByteArray(pdfFile, 0, pdfFile.Length); var url = blob.Uri.AbsoluteUri; download = new UserReportRecord { PartitionKey = "UserReport", RowKey = request.Id.ToString(), Name = $"{request.FirstName} {request.LastName}", Url = url }; }
public static byte[] GeneratePDF(CreateReportRequested request) { var content = $@" First Name: {request.FirstName}<br/> Middle Name: {request.MiddleName}<br/> Last Name: {request.LastName}<br/> Date of Birth: {request.DateOfBirth:dd/mm/yyyy}<br/> Joined us on: {request.JoinedOn:dd/mm/yyyy}"; var Renderer = new IronPdf.HtmlToPdf(); var pdfDoc = Renderer.RenderHtmlAsPdf(content); byte[] result = pdfDoc.BinaryData; return(result); }
public static byte[] GeneratePDF(CreateReportRequested request) { var content = $@" First Name: {request.FirstName}<br/> Middle Name: {request.MiddleName}<br/> Last Name: {request.LastName}<br/> Date of Birth: {request.DateOfBirth:dd/mm/yyyy}<br/> Joined us on: {request.JoinedOn:dd/mm/yyyy}"; byte[] result = null; using (var ms = new MemoryStream()) { PdfDocument pdf = TheArtOfDev.HtmlRenderer.PdfSharp.PdfGenerator.GeneratePdf(content, PageSize.A4); pdf.Save(ms); result = ms.ToArray(); } return(result); }
public async Task <IActionResult> Post([FromForm] NewUserDetailReportViewModel model) { if (ModelState.IsValid) { var @event = new CreateReportRequested { Id = Guid.NewGuid(), FirstName = model.FirstName, LastName = model.LastName, MiddleName = model.MiddleName, DateOfBirth = model.DateOfBirth, JoinedOn = model.JoinedOn }; await _eventPublisher.Publish(@event); return(Redirect("/Downloads")); } return(View("Index")); }