private void PollDataForDocumentProcessing() { WriteLog("Pool data from sql server for document processing"); var databaseHelper = new DatabaseHelper(); var appKey = databaseHelper.GetApplicationKey(); try { if (appKey == null) return; WriteLog("Processing Key : " + appKey.Key); appKey.StatusId = (int)EnumStatus.InProgress; databaseHelper.UpdateApplicationKey(appKey); var sourceDirectory = ApplicationConfiguration.FileRepoPath + appKey.Key + "\\" + appKey.DocumentName; var targetDirectory = ApplicationConfiguration.FileRepoPath + appKey.Key + "\\" + appKey.DocumentName; if (!Directory.Exists(ApplicationConfiguration.FileRepoPath + appKey.Key)) Directory.CreateDirectory(ApplicationConfiguration.FileRepoPath + appKey.Key); if (!File.Exists(ApplicationConfiguration.FileRepoPath + appKey.Key + "\\" + appKey.DocumentName)) File.Move(ApplicationConfiguration.FileRepoPath + appKey.DocumentName, ApplicationConfiguration.FileRepoPath + appKey.Key + "\\" + appKey.DocumentName); ProcessingStrategy.Process(new FileInfo(sourceDirectory), new FileInfo(targetDirectory), true, appKey.CurrentPage, appKey.OriginalDocumentName, appKey.QualitySet); WriteLog("Processing completed for Key : " + appKey.Key); } catch (Exception exception) { if (appKey != null) { appKey.StatusId = (int)EnumStatus.Failed; appKey.ErrorStack = exception.StackTrace; databaseHelper.UpdateApplicationKey(appKey); WriteLog("Error has occured during file processing, appkey=" + appKey.Key + " error description : " + exception.Message); } } }
/// <summary> /// Converts source file .doc,.xls,.ppt to .pdf adobe reader files and also adds watermark on top of PDF file /// </summary> /// <param name="sourceFile">Specify your source file with extension .doc(x), .xls(x), .ppt(x)</param> /// <param name="targetPath"></param> /// <param name="isWaterMarked"></param> /// <param name="currentPage"></param> /// <param name="originalDocumentName"></param> /// <returns></returns> public static int Process(FileInfo sourceFile, FileInfo targetPath, bool isWaterMarked, int currentPage, string originalDocumentName,int qualitySet) { LoadLicense(sourceFile.Extension.ToUpper()); var pageCount = Strategies[sourceFile.Extension.ToUpper()].Process(sourceFile.FullName, targetPath.FullName, currentPage, originalDocumentName, qualitySet); var targetFileName = targetPath.ToString().PathSplit(); var targetFileExt = targetFileName[targetFileName.Length - 1].Split('.'); var imageFile = targetPath.ToString().Replace("." + targetFileExt[targetFileExt.Length - 1], string.Empty) + currentPage + ConfigurationManager.AppSettings["ImageExtension"]; if (isWaterMarked) ApplytWaterMark(imageFile); var databaseHelper = new DatabaseHelper(); var appKey = databaseHelper.GetApplicationKey(Path.GetFileNameWithoutExtension(sourceFile.Name)); appKey.StatusId = (int)EnumStatus.Completed; appKey.PageCount = pageCount; databaseHelper.UpdateApplicationKey(appKey); return pageCount; }