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"); }
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(); }
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(); }