static void Main(string[] args) { manager = new ZebraDBManager(ZebraConfig.FromXML(@".\")); var parser = new ZebraCommandParser(cmdlist2); Console.WriteLine("Zebra Console"); Console.WriteLine("Type help for a list of all commands"); Console.WriteLine("Parameters have to be seperated by a semicolon (;)"); Console.WriteLine(); while (true) { Console.Write("zebra>"); var input = Console.ReadLine(); if (parser.Parse(input, out ZebraCommand cmd, out string[] cmdargs)) { if (cmdargs == null) { cmd.Execute(); } else { cmd.Execute(cmdargs); } } } }
private void ProcessFile(ZebraDBManager manager, string filename, Sheet _sheet, FileImportMode importMode = FileImportMode.Copy, bool _override = false) { //Push file to archive manager.Archive.PushFile(new FileInfo(manager.ZebraConfig.TempDir + $"/{filename}.pdf"), _sheet, importMode, _override); //Remove temp file var oldfile = new FileInfo(manager.ZebraConfig.TempDir + $"/{filename}.pdf"); oldfile.Delete(); }
public ImportCandidateImporter(ZebraDBManager zebraDBManager) { Manager = zebraDBManager; Extractor = new PDFtkSharp.PDFExtractor(); }
public async Task ImportAsync(ZebraDBManager manager, FileInfo file, bool _override = false) { bool alreadyExists = false; Sheet existingSheet = null; //Check if Sheet is already in Database foreach (var sheet in Piece.Sheet) { Progress = -1; if (sheet.Part == Part) { //If no overwriting is intended, throw exception if (_override == false) { throw new SheetAlreadyExistsException(sheet); } //If overwriting is intended, set bool to true, so that the sheet does not get created twice in the database alreadyExists = true; existingSheet = sheet; } } this.Progress = 25; if (alreadyExists == false) { //Create database entry (only if sheet does not exists yet) var _newsheet = manager.NewSheet(Piece.PieceID, Part.PartID); this.Progress = 50; //Extract page PDFExtractor extractor = new PDFExtractor() { InputFile = file, OutputName = _newsheet.SheetID.ToString().PadLeft(8, '0'), OutputPath = new DirectoryInfo(manager.ZebraConfig.TempDir) }; foreach (int page in Pages) { extractor.AddPage(page); } this.Progress = 75; try { //Extract the page from the batch await extractor.ExtractAsync(); } catch (Exception) { manager.Context.Remove <Sheet>(_newsheet); Progress = -1; throw; } this.Progress = 75; ProcessFile(manager, _newsheet.SheetID.ToString().PadLeft(8, '0'), _newsheet); this.Progress = 100; IsImported = true; } else if (alreadyExists == true) { this.Progress = 50; //Extract page PDFExtractor extractor = new PDFExtractor() { InputFile = file, OutputName = existingSheet.SheetID.ToString().PadLeft(8, '0'), OutputPath = new DirectoryInfo(manager.ZebraConfig.TempDir) }; this.Progress = 75; try { //Extract the page from the batch await extractor.ExtractAsync(Pages.ToArray()); } catch (Exception) { Progress = -1; throw; } ProcessFile(manager, existingSheet.SheetID.ToString().PadLeft(8, '0'), existingSheet, FileImportMode.Copy, true); this.Progress = 100; IsImported = true; } }