Example #1
0
        private string PersistDocxFile(RenderPdfInput inputMessage, DisposableWorkSpace renderDirectory)
        {
            var reportPath = Path.Combine(renderDirectory.TmpPath, "report.docx");

            WriteTo(reportPath, inputMessage.Base64DocxReport);
            return(reportPath);
        }
Example #2
0
        public void Ctor_ShouldSetFileNamePropertyToDefault()
        {
            // arrange
            // act
            var actual = new RenderPdfInput();

            // assert
            Assert.Equal("Report", actual.FileName);
        }
Example #3
0
        public void Ctor_WhenNoNameGiven_ShouldDefaultToReport()
        {
            //---------------Arrange-------------------
            //---------------Act----------------------
            var sut = new RenderPdfInput();
            //---------------Assert-----------------------
            var expected = "Report";

            Assert.Equal(expected, sut.FileName);
        }
Example #4
0
        public void Ctor_WhenNameGiven_ShouldUseName()
        {
            //---------------Arrange-------------------
            //---------------Act----------------------
            var sut = new RenderPdfInput {
                FileName = "NewReport"
            };
            //---------------Assert-----------------------
            var expected = "NewReport";

            Assert.Equal(expected, sut.FileName);
        }
Example #5
0
        public RenderedDocumentOutput ConvertToPdf(RenderPdfInput inputMessage)
        {
            using (var renderDirectory = GetWorkspace())
            {
                var pdfPresenter = new PropertyPresenter <string, ErrorOutput>();

                var reportPath = PersistDocxFile(inputMessage, renderDirectory);

                CovertToPdf(reportPath, renderDirectory, pdfPresenter);

                return(RenderingErrors(pdfPresenter) ? ReturnErrors(pdfPresenter) : ReturnPdf(reportPath));
            }
        }
        public void Execute(RenderPdfInput inputTo,
                            IRespondWithSuccessOrError <IFileOutput, ErrorOutput> presenter)
        {
            var output = _pdfGateway.ConvertToPdf(inputTo);

            if (Render_Errors(output))
            {
                Respond_With_Errors(presenter, output);
                return;
            }

            Respond_With_Pdf(inputTo, presenter, output);
        }
Example #7
0
        private static RenderPdfInput Create_Pdf_Input(PropertyPresenter <IFileOutput, ErrorOutput> docxPresenter)
        {
            var input = new RenderPdfInput();

            using (var stream = docxPresenter.SuccessContent.GetStream())
            {
                using (var memoryStream = new MemoryStream())
                {
                    stream.CopyTo(memoryStream);
                    var reportBytes = memoryStream.ToArray();
                    input.Base64DocxReport = Convert.ToBase64String(reportBytes);
                }
            }
            return(input);
        }
Example #8
0
        public void Execute_WhenValidInputTo_ShouldRespondWithPdfContentType()
        {
            //---------------Arrange-------------------
            var gatewayResult = new RenderedDocumentOutput {
                Base64String = "eA=="
            };
            var pdfGateway = Create_Report_Gateway(gatewayResult);

            var input = new RenderPdfInput {
                Base64DocxReport = "cHVzc3k=", FileName = "report.docx"
            };
            var presenter = new PropertyPresenter <IFileOutput, ErrorOutput>();

            var usecase = new RenderWordToPdfUseCase(pdfGateway);

            //---------------Act----------------------
            usecase.Execute(input, presenter);
            //---------------Assert-----------------------
            Assert.Equal("application/pdf", presenter.SuccessContent.ContentType);
        }
Example #9
0
        public void Execute_WhenRenderErrors_ShouldRespondWithErrors()
        {
            //---------------Arrange-------------------
            var gatewayResult = new RenderedDocumentOutput {
                ErrorMessages = new List <string> {
                    "error"
                }
            };
            var pdfGateway = Create_Report_Gateway(gatewayResult);

            var input = new RenderPdfInput {
                Base64DocxReport = "cHVzc3k=", FileName = "report.docx"
            };
            var presenter = new PropertyPresenter <IFileOutput, ErrorOutput>();

            var usecase = new RenderWordToPdfUseCase(pdfGateway);

            //---------------Act----------------------
            usecase.Execute(input, presenter);
            //---------------Assert-----------------------
            Assert.True(presenter.IsErrorResponse());
        }
 private void Respond_With_Pdf(RenderPdfInput inputTo,
                               IRespondWithSuccessOrError <IFileOutput, ErrorOutput> presenter,
                               RenderedDocumentOutput output)
 {
     presenter.Respond(new PdfFileOutput(inputTo.FileName, output.FetchDocumentAsByteArray()));
 }