public Stream GetContentStream() { bool deletionLock = deletionCountdown.TryAddCount(); if (!deletionLock) { throw new FileNotFoundException("The cached file has been deleted."); } if (!created) { lock (creationLock) { if (!created) { var dynamicTemplateData = new DynamicTemplateData(templateData); using (var document = template.CreateDocument()) { using (var fileStream = File.Create(path)) { using (var pdfWriter = PdfWriter.GetInstance(document, fileStream)) { document.Open(); template.WriteDocument(document, dynamicTemplateData); document.Close(); } } } this.CreationDate = File.GetCreationTimeUtc(path); this.created = true; } } } return File.OpenRead(path); }
public Stream GetContentStream() { bool deletionLock = deletionCountdown.TryAddCount(); if (!deletionLock) { throw new FileNotFoundException("The cached file has been deleted."); } if (!created) { lock (creationLock) { if (!created) { var dynamicTemplateData = new DynamicTemplateData(templateData); using (var document = template.CreateDocument()) { using (var fileStream = File.Create(path)) { using (var pdfWriter = PdfWriter.GetInstance(document, fileStream)) { document.Open(); template.WriteDocument(document, dynamicTemplateData); document.Close(); } } } this.CreationDate = File.GetCreationTimeUtc(path); this.created = true; } } } return(File.OpenRead(path)); }