コード例 #1
0
        public void SearchForSourceAudioFiles(AudioLibrary audioLibrary)
        {
            Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch();

            ConsolePrintHelpers.PrintWhiteText("  Searching For Source Audio Files...\n\n\n");

            _ActiveSearches.Clear();

            _SearchRowsRemaining = _LoadSheet.GetAODLoadSheetRows.Count;

            ConsolePrintHelpers.PrintWhiteText("  Search Pass 1...\n\n");

            PrintSearchStatsHeaders();

            Search_Pass1(audioLibrary);

            ConsolePrintHelpers.PrintWhiteText("\n\n  Search Pass 2...\n\n");

            PrintSearchStatsHeaders();

            Search_Pass2(audioLibrary);

            ConsolePrintHelpers.PrintWhiteText("\n\n  Search Pass 3...\n\n");

            PrintSearchStatsHeaders();

            Search_Pass3(audioLibrary);

            ConsolePrintHelpers.PrintDurationAndWait(stopwatch, "Search");
        }
コード例 #2
0
        public void ReadLoadSheet()
        {
            Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch();

            ConsolePrintHelpers.PrintWhiteText("  Reading AOD Loadsheet...\n\n\n");

            PrepareLoadSheetBackup();

            _AlreadyEncodedCount   = 0;
            _IsRowAlreadyEncoded   = false;
            _IsRowAltCycleNotValid = false;

            List <int>    incompleteAODLoadSheetRowNums = new List <int>();
            List <string> rowCells;

            IWorkbook workbook = ReadWorkBook();
            ISheet    sheet    = workbook.GetSheet(_Config.AODLoadSheetWorkSheetName);

            ConsolePrintHelpers.PrintWhiteText("  Total Row Count       :  ");
            int cursorLeft = Console.CursorLeft;

            foreach (IRow row in sheet)
            {
                Console.CursorLeft = cursorLeft;
                ConsolePrintHelpers.PrintCyanText(row.RowNum.ToString());

                rowCells = ReadLoadSheetRow(row);

                if (_Config.AODLoadSheetColumnNumsRead.Length == rowCells.Count)  //check that we successfully extracted text in all cells that we want for this row (if it was already 'Encoded', it will not be added)
                {
                    if (row.RowNum == 0)
                    {
                        _AODLoadSheetHeaderRow = new List <string>(rowCells);
                    }
                    else if (_IsRowAlreadyEncoded == false && _IsRowAltCycleNotValid == false)
                    {
                        _AODLoadSheetRows.Add(new AODLoadSheetRow(row.RowNum, rowCells, _Config));
                    }
                    else if (_IsRowAlreadyEncoded == false && _IsRowAltCycleNotValid == true)
                    {
                        incompleteAODLoadSheetRowNums.Add(row.RowNum);  //Invalid alt. cycle code
                    }
                }
                else if (rowCells.Count > _Config.AODLoadSheetOptionalColumnNumsRead.Count() && _IsRowAlreadyEncoded == false)
                {
                    //Missing column data in loadsheet row (we skip this row as it is incomplete)... Must have text in one of the columns not including the optional cells
                    incompleteAODLoadSheetRowNums.Add(row.RowNum);
                }

                _IsRowAlreadyEncoded   = false;
                _IsRowAltCycleNotValid = false;
            }

            workbook.Close();

            ConsolePrintHelpers.PrintWhiteText("\n  Rows Already Encoded  :  ");
            ConsolePrintHelpers.PrintCyanText(_AlreadyEncodedCount.ToString());

            ConsolePrintHelpers.PrintWhiteText("\n  Rows Not Yet Encoded  :  ");
            ConsolePrintHelpers.PrintCyanText(_AODLoadSheetRows.Count.ToString());

            ConsolePrintHelpers.PrintWhiteText("\n  Incomplete Rows       :  ");
            ConsolePrintHelpers.PrintCyanText(incompleteAODLoadSheetRowNums.Count.ToString());
            Console.WriteLine("\n\n");

            UpdateLoadSheetIncompleteRows(incompleteAODLoadSheetRowNums);

            ConsolePrintHelpers.PrintDurationAndWait(stopwatch, "Read Loadsheet");

            GC.Collect();
        }
コード例 #3
0
        public void ScanAudioLibrary()
        {
            Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch();

            ConsolePrintHelpers.PrintWhiteText("  Scanning Audio Library Paths...\n\n");

            int rootDirectoryPrintCount = 1;

            foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories)
            {
                ConsolePrintHelpers.PrintWhiteText("\tPath (" + rootDirectoryPrintCount + " of " + _AudioLibraryRootDirectories.Count + "):  ");

                rootDirectoryPrintCount++;

                if (Directory.Exists(rootDirectory.AudioLibraryRootDirectoryPath))
                {
                    ConsolePrintHelpers.PrintGreenText(rootDirectory.AudioLibraryRootDirectoryPath + "   ");
                    ConsolePrintHelpers.PrintWhiteText("File Count :  ");

                    rootDirectory.CursorTop  = Console.CursorTop;
                    rootDirectory.CursorLeft = Console.CursorLeft;

                    Console.WriteLine("\n");

                    rootDirectory.ScanRootDirectoryPath();

                    if (rootDirectory.SubDirectories.Count < (Console.WindowHeight - Globals.AudioLibraryScanPrintMargin))
                    {
                        Console.WriteLine("\n");
                    }
                    else
                    {
                        Console.WriteLine();
                    }
                }
                else
                {
                    ConsolePrintHelpers.PrintRedText(rootDirectory.AudioLibraryRootDirectoryPath);
                    ConsolePrintHelpers.PrintWhiteText("   ERROR:  Invalid Path");
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }
            }

            int cursorTop = Console.CursorTop - 3;

            foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories)
            {
                rootDirectory.ScanSubDirectories_Async();
            }

            string[] waitSequence = { "*", "**", "***", "   " };

            bool keepWaiting = true;

            while (keepWaiting)
            {
                foreach (string pattern in waitSequence)
                {
                    foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories)
                    {
                        Console.CursorTop  = rootDirectory.CursorTop;
                        Console.CursorLeft = rootDirectory.CursorLeft;

                        if (rootDirectory.HasFinished == true)
                        {
                            ConsolePrintHelpers.PrintCyanText(rootDirectory.GetFileCount().ToString() + "   ");
                        }
                        else
                        {
                            ConsolePrintHelpers.PrintCyanText(pattern);
                        }

                        if (rootDirectory.SubDirectories.Count < (Console.WindowHeight - Globals.AudioLibraryScanPrintMargin))
                        {
                            foreach (AudioLibrarySubDirectory subDirectory in rootDirectory.SubDirectories)
                            {
                                Console.CursorTop  = subDirectory.CursorTop;
                                Console.CursorLeft = subDirectory.CursorLeft;

                                if (subDirectory.HasFinished == true)
                                {
                                    ConsolePrintHelpers.PrintCyanText(subDirectory.GetFileCount().ToString() + "   ");
                                }
                                else
                                {
                                    ConsolePrintHelpers.PrintCyanText(pattern);
                                }
                            }
                        }
                    }

                    if (_AudioLibraryRootDirectories.All(rootDirectory => rootDirectory.HasFinished == true))
                    {
                        keepWaiting = false;

                        break;
                    }

                    Thread.Sleep(Globals.ProgressTickerDelayMilliseconds);
                }
            }

            foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories)
            {
                Console.CursorTop  = rootDirectory.CursorTop;
                Console.CursorLeft = rootDirectory.CursorLeft;
                ConsolePrintHelpers.PrintCyanText(rootDirectory.GetFileCount().ToString());

                _AudioLibraryFiles = _AudioLibraryFiles.Concat(rootDirectory.GetAudioLibraryFiles).ToList();
            }

            Console.CursorTop = cursorTop;
            ConsolePrintHelpers.PrintWhiteText("\n\n\n  Total File Count :  ");
            ConsolePrintHelpers.PrintCyanText(_AudioLibraryFiles.Count.ToString());

            foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories)
            {
                if (rootDirectory.AreShortcutsValid == false)
                {
                    ConsolePrintHelpers.PrintRedText("\n\n\n  ERROR  Invalid Shortcuts Provided To Arbitrary Mapped Drive. Shortcuts Should Be Targeting Directories And Files In:  ");
                    ConsolePrintHelpers.PrintWhiteText(_Config.AudioLibraryRoot);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }
            }

            if (_AudioLibraryFiles.Count == 0)
            {
                ConsolePrintHelpers.PrintRedText("\n\n\n  ERROR  No Audio Library Files Found");
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            foreach (AudioLibraryRootDirectory rootDirectory in _AudioLibraryRootDirectories)
            {
                if (rootDirectory.HasDetectedError)
                {
                    ConsolePrintHelpers.PrintRedText("\n\n\n  ERROR  Detected Bad Directory/File Name:  [" + rootDirectory.ErrorItem + "]");
                    Console.WriteLine("\n\n");
                    ConsolePrintHelpers.PrintRedText("  A Fix Has Been Attempted. Please Restart This Application.");
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }
            }

            _AudioLibraryFiles = _AudioLibraryFiles.OrderBy(libraryFile => libraryFile.NormalizedSubDirectoriesFilePath).ToList();  //Helps to give consistent search results

            ConsolePrintHelpers.PrintDurationAndWait(stopwatch, "Audio Library Scan");

            GC.Collect();
        }