/// <summary> /// Generates the book. /// </summary> /// <param name="xmldocCriteria">The xmldoc criteria.</param> public int GenerateBook(XPathDocument xpDocument, String strContext) { try { LicensingManager.LicenseKey = PortalConfiguration.GetInstance().FindWebServiceKey("WinnovativeLicenseKey", strContext,true); objPdfhelper = new PDFHelper(); objPdfBLL = new PdfBLL(); objBookTOC = new WellBookTOC(); blnIsTOCApplicable = new Boolean(); ///Once Book Title is obtained get the First Page of PDF ready with Book Title and ///Current Date and time Below it. PDFDocument = new Document(); LibraryName = objPdfBLL.GetAttributeBookInfo(xpDocument, "Type"); if (LibraryName.Equals("pdf")) LibraryName = Constant.LISTPUBLISHED; else if (LibraryName.Equals("print")) LibraryName = Constant.LISTPRINTED; blnIsTOCApplicable = Convert.ToBoolean(objPdfBLL.GetAttributeBookInfo(xpDocument, "IsTOCApplicable")); blnIsStoryBoardApplicable = Convert.ToBoolean(objPdfBLL.GetAttributeBookInfo(xpDocument, "IsStoryBoardApplicable")); blnIsPageTitleApplicable = Convert.ToBoolean(objPdfBLL.GetAttributeBookInfo(xpDocument, "IsPageTitleApplicable")); objPdfhelper.PrintLog(strContext, "PDF generation for {" + objPdfBLL.GetAttributeBookInfo(xpDocument, "BookName") + " }is Started.Calling GenerateTOC to generate PDF", "BookDetails.GenerateBook", "BeforeUploading"); objBookTOC.GenerateTOC(PDFDocument, xpDocument, strContext, blnIsTOCApplicable, blnIsStoryBoardApplicable, blnIsPageTitleApplicable); if ((Convert.ToBoolean(objPdfBLL.GetAttributeBookInfo(xpDocument, "IsBookTitleApplicable")))) { objPdfhelper.AddBookTitle(PDFDocument, xpDocument, blnIsTOCApplicable, LibraryName); } PDFDocument.CompressionLevel = CompressionLevel.BestCompression; objPdfhelper.PrintLog(strContext, "PDF for {" + objPdfBLL.GetAttributeBookInfo(xpDocument, "BookName") + " }is generated.Calling UploadPublishedDocument to upload to document library", "BookDetails.GenerateBook", "BeforeUploading"); intResult = objPdfBLL.UploadPublishedDocument(strContext, objPdfBLL.GetAttributeBookInfo(xpDocument, "BookID"), PDFDocument, objPdfBLL.GetAttributeBookInfo(xpDocument, "BookName"), LibraryName); if (intResult > 0) { objPdfhelper.PrintLog(strContext, "PDF for {" + objPdfBLL.GetAttributeBookInfo(xpDocument, "BookName") + "} is uploaded successfully.", "BookDetails.GenerateBook", "AfterUploading"); } else { objPdfhelper.PrintLog(strContext, "PDF for {" + objPdfBLL.GetAttributeBookInfo(xpDocument, "BookName") + "} is NOT uploaded successfully.", "BookDetails.GenerateBook", "AfterUploading"); } return intResult; } catch (Exception ex) { objPdfhelper.PrintLog(strContext, ex.Message, "BookDetails.GenerateBook", "Exception"); objPdfhelper.PrintLog(strContext, ex.StackTrace, "BookDetails.GenerateBook", "Exception"); throw; } finally { PDFDocument.Close(); } }