/// <summary> /// original method /// </summary> /// <param name="documentMetadata"></param> /// <param name="destinationPath"></param> //public void CopyToOutput(DocumentMetadata documentMetadata, List<FinalMetadata> originFiles) //{ // //TODO SPLIT FOLDER BY ADMISSION NUMBER DULU GAN, // //ABIS ITU BARU BIKIN COPY FILENYA MASUK // //DIDALEM TRY MUSTI DIGANTI SEMUA WKWAKKWAKWAKAW // try // { // var allAdmissionNo = documentMetadata.DocumentTypes // .Where(x => x.AdmissionNo != null) // .Select(x => x.AdmissionNo).Distinct().ToList(); // var folderAdmission = string.Join("_", allAdmissionNo); // var outputFolder = _folderConfig.Output; // var destFolder = Path.Combine(outputFolder, "AdmissionNo", folderAdmission); // var outputFileName = string.Join("_", documentMetadata.Unit); // var outputFilePath = Path.Combine(destFolder, outputFileName); // if (!allAdmissionNo.Any()) // { // destFolder = Path.Combine(outputFolder, "UNKOWN"); // outputFilePath = Path.Combine(destFolder, outputFileName); // Directory.CreateDirectory(destFolder); // if (!Directory.Exists(destFolder)) // { // Directory.CreateDirectory(destFolder); // } // } // if (!Directory.Exists(destFolder)) // { // Directory.CreateDirectory(destFolder); // } // foreach (var file in originFiles) // { // var filename = Path.GetFileName(file.LocalFilePath); // outputFileName = string.Join("_", documentMetadata.Unit, filename); // outputFilePath = Path.Combine(destFolder, outputFileName); // File.Copy(file.LocalFilePath, outputFilePath, true); // //Save Json File // MetadataToOutput(documentMetadata, outputFilePath); // //disini nanti kasih return full collection metadata // _logger.LogInformation(Path.Combine(destFolder, outputFilePath)); // } // } // catch (Exception ex) // { // _logger.LogError(ex.Message); // throw ex; // } //} private void MetadataToOutput(FinalMetadata finalMetadata, string destinationPath) { using (StreamWriter file = new StreamWriter(destinationPath + ".txt")) { file.Write(finalMetadata.JsonExtension()); } }
public static string JsonExtension(this FinalMetadata finalMetadata) { string metadataJson = JsonConvert.SerializeObject(finalMetadata, Formatting.Indented, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, }); return(metadataJson); }
public List <FinalMetadata> SplitPDF(DocumentMetadata documentMetadata, string originFile) { //Parsing data buat ambil range page tiap jenis dokumen //var pageRange = documentMetadata.DocumentTypes.ToDictionary(); bakal dihapus //Test metdos var testexten = documentMetadata.DocumentTypes.ToDictionaryAll(); //test //var testexten = documentMetadata.DocumentTypes.ToDictionaryX(); // bikin list kosong buat nampung var result = new List <FinalMetadata>(); var resultFolder = Path.Combine(_folderConfig.SplitPdf, Path.GetFileNameWithoutExtension(documentMetadata.FileName)); if (!Directory.Exists(resultFolder)) { Directory.CreateDirectory(resultFolder); } foreach (var item in testexten) { var outputName = item.Key + ".pdf"; var outputFolder = Path.Combine(resultFolder, outputName); var semuaPages = item.Value.Select(x => x.Page); var admision = item.Value.Select(x => x.AdmissionNo).FirstOrDefault(); var invoiceNo = item.Value.Select(x => x.InvoiceNo).FirstOrDefault(); ProcessStartInfo pdftkSplit = new ProcessStartInfo() { FileName = "cmd.exe", Arguments = String.Format(@"/c pdftk ""{0}"" cat {1} output ""{2}""", originFile, String.Join(' ', semuaPages), outputFolder), RedirectStandardOutput = true, UseShellExecute = false, }; Process pdfSplit = Process.Start(pdftkSplit); var messageFromCommandLine = pdfSplit.StandardOutput.ReadToEnd(); (messageFromCommandLine.Any() ? new Action(() => _logger.LogWarning(messageFromCommandLine)) : () => _logger.LogInformation("Run"))(); _logger.LogInformation("dokumen split done"); //kasih return metadata. bikin disini, jenis return finalMetadata var finalMetadata = new FinalMetadata() { DateInsert = documentMetadata.DateInsert, FileName = outputName, AdmissionNo = admision, InvoiceNo = invoiceNo, LocalFilePath = outputFolder, DocumentType = item.Key.Split('_').ToList()[1], TotalPages = item.Value.Count(), Unit = documentMetadata.Unit }; result.Add(finalMetadata); } return(result); }