Inheritance: System.Dynamic.DynamicObject
        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));
        }