Beispiel #1
0
 private GeneratedDocumentDomain GenerateRegularDocument(DocumentTypeDomain inputDocType, DocumentTypeDomain outputDocTypeDomain,
                                                         string inputContent, GeneratedDocumentDomain generatedDoc)
 {
     if (CompareDocTypes(inputDocType, outputDocTypeDomain, DocumentTypeEnum.Html, DocumentTypeEnum.Pdf))
     {
         generatedDoc.ByteContent = _pdfGenerator.GeneratePdfFromHtml(inputContent);
     }
     else if (CompareDocTypes(inputDocType, outputDocTypeDomain, DocumentTypeEnum.Json, DocumentTypeEnum.Pdf))
     {
         generatedDoc.ByteContent = _pdfGenerator.GeneratePdfFromJson(inputContent);
     }
     else if (CompareDocTypes(inputDocType, outputDocTypeDomain, DocumentTypeEnum.Html, DocumentTypeEnum.Odt))
     {
         generatedDoc.ByteContent = _odtGenerator.GenerateOdtFromHtml(inputContent);
     }
     else if (CompareDocTypes(inputDocType, outputDocTypeDomain, DocumentTypeEnum.Html, DocumentTypeEnum.Docx))
     {
         generatedDoc.ByteContent = _docxGenerator.GenerateDocxFromHtml(inputContent);
     }
     else if (CompareDocTypes(inputDocType, outputDocTypeDomain, DocumentTypeEnum.Json, DocumentTypeEnum.Html))
     {
         generatedDoc.Content = _htmlGenerator.GenerateHtmlFromJson(inputContent, generatedDoc.Name);
     }
     else
     {
         generatedDoc.Success = false;
         generatedDoc.Content = DocumentMessages.ArgumentInvalidDocType;
         generatedDoc.Name    = DocumentMessages.UndefinedDocumentName;
     }
     return(generatedDoc);
 }
        /// <summary>
        /// Creates new record for generated document
        /// </summary>
        /// <param name="generatedDocument">Instance of <see cref="GeneratedDocumentDomain"/></param>
        /// <returns> Id of a newly generated document record. </returns>
        public int Add(GeneratedDocumentDomain generatedDocument)
        {
            var generatedDocumentDb = new GeneratedDocument().FromDomainModel(generatedDocument);

            _context.GeneratedDocument.Add(generatedDocumentDb);
            _context.SaveChanges();
            return(generatedDocumentDb.DocumentTypeId);
        }
Beispiel #3
0
        public void GenerateDocument_FileNameIsNull()
        {
            // Content is null
            string jsonString = "{\"Result\":[{\"IsEnabled\": true,\"Id\": 10015,\"Name\": \"Reena\"},{\"IsEnabled\": true,\"Id\": 10015,\"Name\": \"Reena\"},{\"IsEnabled\": true,\"Id\": 10015,\"Name\": \"Reena\"}]}";
            var    result     = documentGenerator.Generate(jsonString, null, jsonDocumentTypeDomain, htmlDocumentTypeDomain, null);

            Assert.IsNotNull(result);
            GeneratedDocumentDomain dummy = new GeneratedDocumentDomain();

            Assert.AreEqual(result.GetType(), dummy.GetType());
            Assert.IsNotNull(result.Name);
            Assert.IsTrue(result.Success);
        }
Beispiel #4
0
        public GeneratedDocumentDomain Generate(string inputContent, string fileName,
                                                DocumentTypeDomain inputDocType, DocumentTypeDomain outputDocTypeDomain, Nullable <int> templateVersionId)
        {
            if (string.IsNullOrEmpty(inputContent))
            {
                throw new NsiArgumentNullException(DocumentMessages.DocumentContentNotFound);
            }
            if (inputDocType == null || outputDocTypeDomain == null)
            {
                throw new NsiArgumentNullException(DocumentMessages.DocumentContentNotFound);
            }
            GeneratedDocumentDomain generatedDoc = new GeneratedDocumentDomain()
            {
                DateCreated       = DateTime.Now,
                DocumentType      = outputDocTypeDomain,
                DocumentTypeId    = outputDocTypeDomain.Id,
                ExternalId        = System.Guid.NewGuid(),
                Name              = fileName,
                TemplateVersionId = templateVersionId
            };

            if (fileName == null)
            {
                generatedDoc.Name = string.Format(@"{0}", DateTime.Now.Ticks);
            }

            try
            {
                generatedDoc.Success = true;
                if (templateVersionId == null)
                {
                    generatedDoc = GenerateRegularDocument(inputDocType, outputDocTypeDomain, inputContent, generatedDoc);
                }
                else
                {
                    generatedDoc = GenerateTemplateDocument(inputDocType, outputDocTypeDomain, inputContent, generatedDoc);
                }
                _documentLogger.Log(generatedDoc);
                return(generatedDoc);
            }
            catch (Exception e)
            {
                generatedDoc.Success     = false;
                generatedDoc.ByteContent = null;
                generatedDoc.Content     = e.Message;
                generatedDoc.Name        = DocumentMessages.UndefinedDocumentName;
                _documentLogger.Log(generatedDoc);
                throw;
            }
        }
Beispiel #5
0
        public GeneratedDocumentDomain ExportTemplate(int templateVersionId, DocumentTypeEnum outputDocType)
        {
            TemplateVersionDomain templateVersionDomain = _templateVersionManipulation.GetByVersionId(templateVersionId);

            if (templateVersionDomain == null)
            {
                throw new NsiArgumentNullException(TemplateManagementMessages.TemplateVersionInvalidId);
            }
            string name = _templateManipulation.GetTemplateNameById(templateVersionDomain.TemplateId);
            GeneratedDocumentDomain generatedDocumentDomain = _documentGenerator.Generate(templateVersionDomain.Content, name,
                                                                                          DocumentTypeEnum.Json, outputDocType, templateVersionId);

            return(generatedDocumentDomain);
        }
        public HttpResponseMessage ExportTemplateToPdf(int templateVersionId)
        {
            GeneratedDocumentDomain generatedDocument = _exportTemplateManipulation.ExportTemplate(templateVersionId, DocumentTypeEnum.Pdf);
            HttpResponseMessage     response          = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new ByteArrayContent(generatedDocument.ByteContent)
            };

            response.Content.Headers.ContentType        = new MediaTypeHeaderValue("application/pdf");
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = generatedDocument.Name + ".pdf"
            };
            return(response);
        }
        public HttpResponseMessage ExportTemplateToHtml(int templateVersionId)
        {
            GeneratedDocumentDomain generatedDocument = _exportTemplateManipulation.ExportTemplate(templateVersionId, DocumentTypeEnum.Html);
            HttpResponseMessage     response          = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(generatedDocument.Content)
            };

            response.Content.Headers.ContentType        = new MediaTypeHeaderValue("text/html");
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = generatedDocument.Name + ".html"
            };
            return(response);
        }
Beispiel #8
0
        public static GeneratedDocument FromDomainModel(this GeneratedDocument obj, GeneratedDocumentDomain domain)
        {
            if (obj == null)
            {
                obj = new GeneratedDocument();
            }

            obj.GeneratedDocumentId = domain.Id;
            obj.Name              = domain.Name;
            obj.ExternalId        = domain.ExternalId;
            obj.Success           = domain.Success;
            obj.DateCreated       = domain.DateCreated;
            obj.Content           = domain.Content;
            obj.TemplateVersionId = domain.TemplateVersionId;
            obj.DocumentTypeId    = domain.DocumentTypeId;

            return(obj);
        }
Beispiel #9
0
 private GeneratedDocumentDomain GenerateTemplateDocument(DocumentTypeDomain inputDocType, DocumentTypeDomain outputDocTypeDomain,
                                                          string inputContent, GeneratedDocumentDomain generatedDoc)
 {
     if (CompareDocTypes(inputDocType, outputDocTypeDomain, DocumentTypeEnum.Json, DocumentTypeEnum.Pdf))
     {
         generatedDoc.ByteContent = _templateGenerator.GeneratePdfFromTemplate(inputContent, generatedDoc.Name);
     }
     else if (CompareDocTypes(inputDocType, outputDocTypeDomain, DocumentTypeEnum.Json, DocumentTypeEnum.Html))
     {
         generatedDoc.Content = _templateGenerator.GenerateHtmlFromTemplate(inputContent, generatedDoc.Name);
     }
     else
     {
         generatedDoc.Success = false;
         generatedDoc.Content = DocumentMessages.ArgumentInvalidDocType;
         generatedDoc.Name    = DocumentMessages.UndefinedDocumentName;
     }
     return(generatedDoc);
 }
Beispiel #10
0
 public void Log(GeneratedDocumentDomain generatedDocument)
 {
     _generatedDocumentRepository.Add(generatedDocument);
 }