public static void StartSingleFileScan(string filePath, AvailableHashAlgorithms hashAlgorithm)
        {
            Scan scan = new Scan
            {
                FilePath      = filePath,
                HashAlgorithm = new FIMHashAlgorithm {
                    Id = (int)hashAlgorithm
                },
                Time = DateTime.Now
            };

            try
            {
                FileScan.ScanFile(filePath, scan);
            }
            catch (Exception ex)
            {
                Logger.Log(ex.Message, LogType.Error);
            }
        }
        public static void StartScanConsole(string filePath, bool recursive, AvailableHashAlgorithms hashAlgorithm)
        {
            Scan scan = new Scan
            {
                FilePath      = filePath,
                HashAlgorithm = new FIMHashAlgorithm {
                    Id = (int)hashAlgorithm
                },
                Time = DateTime.Now
            };

            scan.Insert();

            //insert scan in database

            List <string> allFiles = DirectoryParser.GetAllFiles(filePath, recursive);

            int nFiles = allFiles.Count;
            int i      = 0;

            Console.WriteLine("Scanning ...");
            foreach (string file in allFiles)
            {
                try
                {
                    FileScan.ScanFile(file, scan);

                    Console.WriteLine(Math.Ceiling(((double)i / nFiles) * 100).ToString() + "%");
                    Console.SetCursorPosition(0, Console.CursorTop - 1);
                    System.Threading.Thread.Sleep(50);
                    i++;
                }
                catch (Exception ex)
                {
                    Logger.Log(ex.Message, LogType.Error);

                    continue;
                }
            }
        }