public void Initialize()
        {
            _documentTypeRepositoryMock      = DocumentTypeRepositoryMock.GetDocumentTypeRepositoryMock();
            _generatedDocumentRepositoryMock = GeneratedDocumentRepositoryMock.GetGeneratedDocumentRepositoryMock();
            jsonContent             = new GenerateDocumentRequest();
            htmlContent             = new GenerateDocumentRequest();
            htmlGenerator           = new DocumentGenerator.Implementations.HtmlGenerator(new DocumentGenerator.Implementations.Helpers.HtmlGeneratorHelper());
            pdfGenerator            = new DocumentGenerator.Implementations.PdfGenerator();
            odtGenerator            = new DocumentGenerator.Implementations.OdtGenerator();
            docxGenerator           = new DocumentGenerator.Implementations.DocxGenerator();
            generatedDocumentLogger = new DocumentGenerator.Implementations.Helpers.GeneratedDocumentLogger(_generatedDocumentRepositoryMock.Object);
            templateGenerator       = new TemplateGenerator(new DocumentGenerator.Implementations.PdfGenerator(), new DocumentGenerator.Implementations.HtmlGenerator(new DocumentGenerator.Implementations.Helpers.HtmlGeneratorHelper()));
            documentGenerator       = new DocumentGenerator.Implementations.Generators.DocumentGenerator(_documentTypeRepositoryMock.Object, generatedDocumentLogger, htmlGenerator, pdfGenerator, odtGenerator, docxGenerator, templateGenerator);

            _templateVersionRepositoryMock = TemplateVersionRepositoryMock.GetTemplateVersionRepositoryMock();
            _folderRepositoryMock          = FolderRepositoryMock.GetFolderRepositoryMock();
            _templateRepositoryMock        = TemplateRepositoryMock.GetTemplateRepositoryMock();

            templateVersionManipulation = new TemplateVersionManipulation(_templateVersionRepositoryMock.Object);
            folderManipulation          = new FolderManipulation(_folderRepositoryMock.Object);
            templateManipulation        = new TemplateManipulation(_templateRepositoryMock.Object, templateVersionManipulation, folderManipulation);

            templateVersionManipulation = new TemplateVersionManipulation(_templateVersionRepositoryMock.Object);
            exportTemplateManipulation  = new ExportTemplateManipulation(templateManipulation, templateVersionManipulation, documentGenerator);
        }
        public GenerateDocumentResponse.ResultResponse GenerateDocument(string templateName, string filename, List <Variable> variables)
        {
            var body = new GenerateDocumentRequest()
            {
                TemplateName = templateName,
                Filename     = filename,
                Variables    = variables
            };

            var client  = new RestClient($"{config.Url}/api/Template/GetDocument");
            var request = new RestRequest(Method.POST);

            request.AddHeader("Accept", "application/json");
            request.AddHeader("Content-Type", "application/json");
            var json = JsonConvert.SerializeObject(body, new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            logger.LogDebug($"body: {json}");
            request.AddParameter("application/json", json, ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);

            logger.LogDebug($"response[{response.StatusCode}]: {response.Content}");
            if (response.StatusCode != System.Net.HttpStatusCode.Created)
            {
                throw new System.Exception($"something bad happend: {response.Content}");
            }

            var result = JsonConvert.DeserializeObject <GenerateDocumentResponse>(response.Content).Result;

            return(result);
        }
Exemple #3
0
        public void Initialize()
        {
            _documentTypeRepositoryMock      = DocumentTypeRepositoryMock.GetDocumentTypeRepositoryMock();
            _generatedDocumentRepositoryMock = GeneratedDocumentRepositoryMock.GetGeneratedDocumentRepositoryMock();
            jsonContent   = new GenerateDocumentRequest();
            htmlContent   = new GenerateDocumentRequest();
            nsiContext    = new NsiContext();
            htmlGenerator = new NSI.DocumentGenerator.Implementations.HtmlGenerator(new NSI.DocumentGenerator.Implementations.Helpers.HtmlGeneratorHelper());
            pdfGenerator  = new NSI.DocumentGenerator.Implementations.PdfGenerator();

            _docxGeneratorMock = DocxGeneratorMock.GetDocxGeneratorMock();
            _odtGeneratorMock  = OdtGeneratorMock.GetOdtGeneratorMock();

            generatedDocumentLogger = new NSI.DocumentGenerator.Implementations.Helpers.GeneratedDocumentLogger(_generatedDocumentRepositoryMock.Object);
            templateGenerator       = new TemplateGenerator(new NSI.DocumentGenerator.Implementations.PdfGenerator(), new NSI.DocumentGenerator.Implementations.HtmlGenerator(new NSI.DocumentGenerator.Implementations.Helpers.HtmlGeneratorHelper()));
            documentGenerator       = new NSI.DocumentGenerator.Implementations.Generators.DocumentGenerator(_documentTypeRepositoryMock.Object, generatedDocumentLogger, htmlGenerator, pdfGenerator, _odtGeneratorMock.Object, _docxGeneratorMock.Object, templateGenerator);
            jsonDocumentTypeDomain  = new DocumentTypeDomain()
            {
                Name     = "json",
                Code     = "json",
                Version  = "1.0",
                Encoding = "utf-8"
            };
            htmlDocumentTypeDomain = new DocumentTypeDomain()
            {
                Name     = "html",
                Code     = "html",
                Version  = "1.0",
                Encoding = "utf-8"
            };
        }
Exemple #4
0
        public HttpResponseMessage GenerateHtmlFromJson([FromBody] GenerateDocumentRequest request)
        {
            request.ValidateNotNull();
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(_documentGenerator.Generate(request.Content, request.Filename,
                                                                        DocumentTypeEnum.Json, DocumentTypeEnum.Html, null).Content)
            };

            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = request.Filename + ".html"
            };
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
            return(response);
        }
Exemple #5
0
        public HttpResponseMessage GeneratePdfFromJson([FromBody] GenerateDocumentRequest request)
        {
            request.ValidateNotNull();
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ByteArrayContent(_documentGenerator.Generate(request.Content, request.Filename,
                                                                           DocumentTypeEnum.Json, DocumentTypeEnum.Pdf, null).ByteContent)
            };

            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = request.Filename + ".pdf"
            };
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
            return(response);
        }
Exemple #6
0
        public HttpResponseMessage GenerateDocxFromHtml([FromBody] GenerateDocumentRequest request)
        {
            request.ValidateNotNull();
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ByteArrayContent(_documentGenerator.Generate(request.Content, request.Filename,
                                                                           DocumentTypeEnum.Html, DocumentTypeEnum.Docx, null).ByteContent)
            };

            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
            // https://www.ryadel.com/en/get-file-content-mime-type-from-extension-asp-net-mvc-core/
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = request.Filename + ".docx"
            };
            return(response);
        }
Exemple #7
0
        public HttpResponseMessage GenerateDocxFromJson([FromBody] GenerateDocumentRequest request)
        {
            request.ValidateNotNull();
            string htmlContent = _documentGenerator.Generate(request.Content, request.Filename,
                                                             DocumentTypeEnum.Json, DocumentTypeEnum.Html, null).Content;
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ByteArrayContent(_documentGenerator.Generate(htmlContent, request.Filename,
                                                                           DocumentTypeEnum.Html, DocumentTypeEnum.Docx, null).ByteContent)
            };

            response.Content.Headers.ContentType        = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = request.Filename + ".docx"
            };
            return(response);
        }
        public void Initialize()
        {
            _documentTypeRepositoryMock      = DocumentTypeRepositoryMock.GetDocumentTypeRepositoryMock();
            _generatedDocumentRepositoryMock = GeneratedDocumentRepositoryMock.GetGeneratedDocumentRepositoryMock();
            jsonContent        = new GenerateDocumentRequest();
            htmlContent        = new GenerateDocumentRequest();
            htmlGenerator      = new DocumentGenerator.Implementations.HtmlGenerator(new DocumentGenerator.Implementations.Helpers.HtmlGeneratorHelper());
            pdfGenerator       = new DocumentGenerator.Implementations.PdfGenerator();
            _docxGeneratorMock = DocxGeneratorMock.GetDocxGeneratorMock();
            _odtGeneratorMock  = OdtGeneratorMock.GetOdtGeneratorMock();

            generatedDocumentLogger = new DocumentGenerator.Implementations.Helpers.GeneratedDocumentLogger(_generatedDocumentRepositoryMock.Object);
            templateGenerator       = new TemplateGenerator(new DocumentGenerator.Implementations.PdfGenerator(), new DocumentGenerator.Implementations.HtmlGenerator(new DocumentGenerator.Implementations.Helpers.HtmlGeneratorHelper()));
            documentGenerator       = new DocumentGenerator.Implementations.Generators.DocumentGenerator(_documentTypeRepositoryMock.Object, generatedDocumentLogger, htmlGenerator, pdfGenerator, _odtGeneratorMock.Object, _docxGeneratorMock.Object, templateGenerator);
            setJsonContent();
            setHtmlContent();
            controller = new DocumentGeneratorController(documentGenerator, generatedDocumentLogger);
        }