public async Task <IActionResult> ViewCertificate( [FromRoute] int id, [FromServices] ICertificatesService certificatesService) { var certificate = await certificatesService.GetAsync(id); if (certificate == null) { return(NotFound()); } return(View("Templates/Certificates/CourseCertificate", certificate)); }
public async Task <IActionResult> DownloadCertificate( [FromServices] CertificatePdfRenderer writer, [FromServices] ICertificatesService certificatesService, [FromRoute] int id) { var certificate = await certificatesService.GetAsync(id); if (certificate == null) { return(NotFound()); } var stream = await writer.RenderAsync(CertificateVM.From(certificate)); MemoryStream memoryStream = new MemoryStream(); await stream.CopyToAsync(memoryStream); return(File(memoryStream.ToArray(), "application/pdf")); }