Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
 public ImportCandidateImporter(ZebraDBManager zebraDBManager)
 {
     Manager   = zebraDBManager;
     Extractor = new PDFtkSharp.PDFExtractor();
 }
Ejemplo n.º 4
0
        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;
            }
        }