public void PrintApprovedLoadSheetRows_DEBUG()
        {
            ConsolePrintHelpers.PrintHeader();

            ConsolePrintHelpers.PrintWhiteText("  Printing Approved Load Sheet Rows...");

            Console.WriteLine("\n\n");
            ConsolePrintHelpers.PrintWhiteText("  Approved Load Sheet Rows Count :  ");
            ConsolePrintHelpers.PrintCyanText(_ApprovedLoadSheetRows.Count.ToString());

            ConsolePrintHelpers.Wait();

            if (_ApprovedLoadSheetRows.Count > 0)
            {
                Console.WriteLine("\n\n");
            }

            foreach (ApprovedLoadSheetRow approvedLSR in _ApprovedLoadSheetRows)
            {
                ConsolePrintHelpers.PrintFullWidthLine();

                ConsolePrintHelpers.PrintWhiteText("  Is Valid?         :  ");
                if (approvedLSR.ReCheckIfValid())
                {
                    ConsolePrintHelpers.PrintYellowText(approvedLSR.IsValid.ToString());
                }
                else
                {
                    ConsolePrintHelpers.PrintRedText(approvedLSR.IsValid.ToString());
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Source File Path  :  ");
                ConsolePrintHelpers.PrintCyanText(approvedLSR.SourceFilePath);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Source File Date  :  ");
                ConsolePrintHelpers.PrintCyanText(approvedLSR.SourceFileModifiedDate);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Source File Size  :  ");
                ConsolePrintHelpers.PrintCyanText((approvedLSR.SourceFileSize / 1024 / 1024).ToString() + " MB");
                Console.WriteLine("\n");

                ConsolePrintHelpers.PrintWhiteText("  LSR Hash          :  ");
                ConsolePrintHelpers.PrintCyanText(approvedLSR.LoadSheetRowHash);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Accuracy Score    :  ");
                ConsolePrintHelpers.PrintCyanText(approvedLSR.AccuracyScore.ToString());
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Accuracy Type     :  ");
                ConsolePrintHelpers.PrintCyanText(approvedLSR.AccuracyType.ToString());
                Console.WriteLine();
            }

            ConsolePrintHelpers.PressAnyKeyToContinue();
        }
        public void PrintProductionLSRInfo()
        {
            Console.CursorVisible = false;

            Console.WriteLine();
            ConsolePrintHelpers.PrintFullWidthLine();
            Console.CursorTop -= 2;

            PrintBasicLSRInfo();

            if (_IsApproved)
            {
                _SuggestedAudioFile.PrintSuggestedAudioFileInfo(true);
            }
            else
            {
                _SuggestedAudioFile.PrintSuggestedAudioFileInfo(false);
            }

            Console.WriteLine("\n");
        }
        public void PrintTokensPerRowAllRows_DEBUG()
        {
            ConsolePrintHelpers.PrintHeader();

            ConsolePrintHelpers.PrintWhiteText("  Printing AOD Loadsheet Tokens Per Row...");

            ConsolePrintHelpers.Wait();

            Console.WriteLine("\n\n");

            foreach (AODLoadSheetRow lsr in _AODLoadSheetRows)
            {
                ConsolePrintHelpers.PrintFullWidthLine();

                ConsolePrintHelpers.PrintWhiteText("  Cycle            :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(lsr.Cycle);
                Console.CursorLeft = Globals.CursorsLeft[1];
                ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

                foreach (string cycleToken in lsr.Tokens.CycleTokens.GetTokens)
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintGreenText(cycleToken);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Airline          :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(lsr.Airline);
                Console.CursorLeft = Globals.CursorsLeft[1];
                ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

                foreach (string airlineToken in lsr.Tokens.AirlineTokens.GetTokens)
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintGreenText(airlineToken);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Audio Type       :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(lsr.AudioType);
                Console.CursorLeft = Globals.CursorsLeft[1];
                ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

                foreach (string audioTypeToken in lsr.Tokens.AudioTypeTokens.GetTokens)
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintGreenText(audioTypeToken);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Artist           :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(lsr.Artist);
                Console.CursorLeft = Globals.CursorsLeft[1];
                ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

                foreach (string artistToken in lsr.Tokens.ArtistTokens.GetTokens)
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintGreenText(artistToken);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Album            :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(lsr.Album);
                Console.CursorLeft = Globals.CursorsLeft[1];
                ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

                foreach (string albumToken in lsr.Tokens.AlbumTokens.GetTokens)
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintGreenText(albumToken);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Track #          :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(lsr.TrackNumber);
                Console.CursorLeft = Globals.CursorsLeft[1];
                ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

                foreach (string trackNumberToken in lsr.Tokens.TrackNumberTokens.GetTokens)
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintGreenText(trackNumberToken);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Track            :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(lsr.Track);
                Console.CursorLeft = Globals.CursorsLeft[1];
                ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

                foreach (string trackToken in lsr.Tokens.TrackTokens.GetTokens)
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintGreenText(trackToken);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }
                Console.WriteLine("\n");
            }

            ConsolePrintHelpers.PressAnyKeyToContinue();
        }
        public void PrintAODLoadSheetPretty_DEBUG()
        {
            List <int> cursorsLeft = AutoFitColumns();

            int currentColumnWidth;

            ConsolePrintHelpers.PrintHeader();

            ConsolePrintHelpers.PrintWhiteText("  Printing AOD Loadsheet (Pretty)...");

            ConsolePrintHelpers.Wait();

            Console.WriteLine("\n\n");

            ConsolePrintHelpers.PrintWhiteText("  Header Row:\t");

            int cursorIterator = 0;

            foreach (string header in _AODLoadSheetHeaderRow)
            {
                Console.CursorLeft = cursorsLeft[cursorIterator];
                ConsolePrintHelpers.PrintWhiteText("[");
                ConsolePrintHelpers.PrintGreenText(header);
                ConsolePrintHelpers.PrintWhiteText("]");
                cursorIterator++;
            }

            Console.WriteLine();

            ConsolePrintHelpers.PrintFullWidthLine();

            foreach (AODLoadSheetRow lsr in _AODLoadSheetRows)
            {
                string columnValue = "";

                ConsolePrintHelpers.PrintWhiteText("  Row " + (lsr.LoadSheetRowNumber + 1) + ":\t");

                for (int i = 0; i < cursorsLeft.Count; i++)
                {
                    //Any updates here must also be updated in AutoFitColumns() method
                    if (i == 0)
                    {
                        columnValue = lsr.Airline;
                    }
                    if (i == 1)
                    {
                        columnValue = lsr.AltCycle;
                    }
                    if (i == 2)
                    {
                        columnValue = lsr.Artist;
                    }
                    if (i == 3)
                    {
                        columnValue = lsr.Album;
                    }
                    if (i == 4)
                    {
                        columnValue = lsr.TrackNumber;
                    }
                    if (i == 5)
                    {
                        columnValue = lsr.Track;
                    }
                    if (i == 6)
                    {
                        columnValue = lsr.OutputFilename;
                    }
                    if (i == 7)
                    {
                        columnValue = lsr.AudioType;
                    }
                    if (i == 8)
                    {
                        columnValue = lsr.ShipTo;
                    }
                    if (i == 9)
                    {
                        columnValue = lsr.Status;
                    }
                    if (i == 10)
                    {
                        break;
                    }

                    currentColumnWidth = cursorsLeft[i + 1] - cursorsLeft[i];
                    Console.CursorLeft = cursorsLeft[i];

                    ConsolePrintHelpers.PrintWhiteText("[");
                    if ((columnValue.Length + 2) >= currentColumnWidth)
                    {
                        ConsolePrintHelpers.PrintCyanText(columnValue.Remove(currentColumnWidth - 6) + "...");
                    }
                    else
                    {
                        ConsolePrintHelpers.PrintCyanText(columnValue);
                    }
                    ConsolePrintHelpers.PrintWhiteText("]");
                }

                Console.WriteLine();
            }

            ConsolePrintHelpers.PressAnyKeyToContinue();
        }
        public void PrintAlreadyEncodedFiles_DEBUG()
        {
            ConsolePrintHelpers.PrintHeader();

            ConsolePrintHelpers.PrintWhiteText("  Printing Already Encoded Files...");

            Console.WriteLine("\n\n");
            ConsolePrintHelpers.PrintWhiteText("  Already Encoded Files Count :  ");
            ConsolePrintHelpers.PrintCyanText(_AlreadyEncodedFiles.Count.ToString());

            ConsolePrintHelpers.Wait();

            if (_AlreadyEncodedFiles.Count > 0)
            {
                Console.WriteLine("\n\n");
            }

            foreach (AlreadyEncodedFile file in _AlreadyEncodedFiles)
            {
                ConsolePrintHelpers.PrintFullWidthLine();

                ConsolePrintHelpers.PrintWhiteText("  Is Valid?         :  ");
                if (file.ReCheckIfValid())
                {
                    ConsolePrintHelpers.PrintYellowText(file.IsValid.ToString());
                }
                else
                {
                    ConsolePrintHelpers.PrintRedText(file.IsValid.ToString());
                }
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Encoded File Path :  ");
                ConsolePrintHelpers.PrintCyanText(file.EncodedFilePath);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Encoded File Date :  ");
                ConsolePrintHelpers.PrintCyanText(file.EncodedFileModifiedDate);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Encoded File Size :  ");
                ConsolePrintHelpers.PrintCyanText((file.EncodedFileSize / 1024 / 1024).ToString() + " MB");
                Console.WriteLine("\n");

                ConsolePrintHelpers.PrintWhiteText("  Source File Path  :  ");
                ConsolePrintHelpers.PrintCyanText(file.SourceFilePath);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Source File Date  :  ");
                ConsolePrintHelpers.PrintCyanText(file.SourceFileModifiedDate);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Source File Size  :  ");
                ConsolePrintHelpers.PrintCyanText((file.SourceFileSize / 1024 / 1024).ToString() + " MB");
                Console.WriteLine("\n");

                ConsolePrintHelpers.PrintWhiteText("  Encoded Status    :  ");
                ConsolePrintHelpers.PrintCyanText(file.EncodedStatus);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Encoded File Ext  :  ");
                ConsolePrintHelpers.PrintCyanText(file.EncodedFileExtension);
                Console.WriteLine();
            }

            ConsolePrintHelpers.PressAnyKeyToContinue();
        }
Example #6
0
        private void ManuallyAssignSkippedEncodings()
        {
            if (_TempSkippedList.Count == 0)
            {
                return;
            }

            if (!PromptToManuallyAssignSkippedEncodings())
            {
                return;
            }

            ConsolePrintHelpers.PrintWhiteText("\n\n\n  Select Source Files...");
            Console.WriteLine("\n");
            ConsolePrintHelpers.PrintFullWidthLine();
            Console.CursorTop -= 2;

            int remainingRows = _TempSkippedList.Count;

            foreach (AODLoadSheetRow skippedLSR in _TempSkippedList.ToList())
            {
                skippedLSR.PrintBasicLSRInfo();

                skippedLSR.AssignSuggestedAudioFile();  //If this row is sharing a SearchCollection with another row (identical LSR Hashes; Copied SearchCollection in quick search 'Past LSR' section) then re-assign it for following approval check

                if (CheckApprovalHistoryAgain(skippedLSR))
                {
                    ConsolePrintHelpers.PrintWhiteText("  Historically Approved...\n\n");

                    skippedLSR.SuggestedAudioFile.PrintSuggestedAudioFileInfo(true);

                    Console.WriteLine("\n\n\n");
                    ConsolePrintHelpers.PrintFullWidthLine();
                    Console.CursorTop -= 5;
                }
                else
                {
                    skippedLSR.SuggestedAudioFile.PrintSuggestedAudioFileInfo(false);

                    int selection = SelectManualOption(skippedLSR);

                    if (selection == -2)
                    {
                        ConsolePrintHelpers.PrintWhiteText("\n\n\n  Skipping All Remaining Rows...");

                        remainingRows--;

                        ConsolePrintHelpers.PrintWhiteText("\n\n\n  Remaining Skipped Rows : ");
                        ConsolePrintHelpers.PrintCyanText(remainingRows.ToString());

                        break;
                    }

                    if (selection == -1)
                    {
                        ConsolePrintHelpers.PrintWhiteText("\n\n\n  Skipping This Row...");
                    }
                    else
                    {
                        AudioFileOption selectedOption = skippedLSR.SearchCollection.GetSelectedOption(selection);

                        skippedLSR.AssignSuggestedAudioFileFromManualApproval(selectedOption);

                        if (CheckApprovalHistoryAgain(skippedLSR))
                        {
                            _Controller.History.AddNewApprovedLoadSheetRow(skippedLSR);
                        }
                    }
                }

                remainingRows--;

                ConsolePrintHelpers.PrintWhiteText("\n\n\n  Remaining Skipped Rows : ");
                ConsolePrintHelpers.PrintCyanText(remainingRows.ToString());

                Thread.Sleep(1000);
            }

            if (_TempSkippedList.Count > 0)
            {
                int skippedCountBefore = _TempSkippedList.Count;

                ConsolePrintHelpers.PrintYellowText("\n\n\n  Checking Approvals On Remaining Rows");
                ConsolePrintHelpers.PrintWhiteText(" ► ");

                bool cancelProgressTicker = false;

                Task ticker = Task.Run(() => ConsolePrintHelpers.PrintProgressTicker(ref cancelProgressTicker));

                foreach (AODLoadSheetRow skippedRow in _TempSkippedList.ToList())
                {
                    CheckApprovalHistoryAgain(skippedRow);
                }

                cancelProgressTicker = true;

                ticker.Wait();

                ConsolePrintHelpers.PrintYellowText("Done");

                if (_TempSkippedList.Count < skippedCountBefore)
                {
                    ConsolePrintHelpers.PrintWhiteText("\n\n\n  Skipped Loadsheet Rows Count (Before) : ");
                    ConsolePrintHelpers.PrintCyanText(skippedCountBefore.ToString());
                    ConsolePrintHelpers.PrintWhiteText("\n  Skipped Loadsheet Rows Count (After)  : ");
                    ConsolePrintHelpers.PrintCyanText(_TempSkippedList.Count.ToString());
                }
            }
        }
Example #7
0
        public void PrintEncodingQueue_DEBUG(AudioEncoderController controller)
        {
            ConsolePrintHelpers.PrintHeader();

            ConsolePrintHelpers.PrintWhiteText("  Printing Encoding Queue...");

            PrintPendingCopyOrEncodeStats();

            ConsolePrintHelpers.Wait();

            Console.WriteLine("\n");

            foreach (AudioFileEncoding encoding in _EncodingQueue)
            {
                ConsolePrintHelpers.PrintFullWidthLine();

                ConsolePrintHelpers.PrintWhiteText("  Encoding ID           :  ");
                ConsolePrintHelpers.PrintCyanText(encoding.EncodingID.ToString());
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Load Sheet Row #      :  ");
                ConsolePrintHelpers.PrintCyanText((encoding.LSR.LoadSheetRowNumber + 1).ToString());
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Source File Size      :  ");
                ConsolePrintHelpers.PrintCyanText((encoding.LSR.SuggestedAudioFile.FileSize / 1024 / 1024).ToString() + " MB");
                Console.WriteLine("\n");

                ConsolePrintHelpers.PrintWhiteText("  Source File           :  ");
                ConsolePrintHelpers.PrintCyanText(encoding.LSR.SuggestedAudioFile.FullPath);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Destination File      :  ");
                ConsolePrintHelpers.PrintCyanText(encoding.LSR.DestinationPath);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Destination File Ext  :  ");
                ConsolePrintHelpers.PrintCyanText(encoding.LSR.OutputFilenameExtension);
                Console.WriteLine("\n");

                ConsolePrintHelpers.PrintWhiteText("  Copy Or Encode        :  ");

                if (encoding.TryToCopyAlreadyEncodedFile)
                {
                    AlreadyEncodedFile file = controller.History.GetAlreadyEncodedFileAndReCheckValidation(encoding);

                    if (file != null)  //Already Encoded File found
                    {
                        ConsolePrintHelpers.PrintYellowText("Copy Already Encoded File");
                    }
                    else
                    {
                        AudioFileEncoding activeEncoding = controller.GetActiveEncodingForPendingCopy(encoding);

                        if (activeEncoding != null)  //Pending active encoding should be creating the Already Encoded file we seek
                        {
                            file = activeEncoding.LSR.PotentialFile;

                            ConsolePrintHelpers.PrintYellowText("Copy from Active Encoding (ID: " + activeEncoding.EncodingID.ToString() + ")");
                        }
                        else
                        {
                            ConsolePrintHelpers.PrintRedText("Encode (No Eligible File To Copy Found)");
                        }
                    }

                    if (file != null)
                    {
                        Console.WriteLine("\n");
                        ConsolePrintHelpers.PrintWhiteText("  Load Sheet Row #      :  ");
                        ConsolePrintHelpers.PrintGreenText((file.LoadSheetRowNumber + 1).ToString());
                        Console.WriteLine();
                        ConsolePrintHelpers.PrintWhiteText("  Source File           :  ");

                        if (encoding.LSR.SuggestedAudioFile.FullPath == file.SourceFilePath)
                        {
                            ConsolePrintHelpers.PrintGreenText(file.SourceFilePath);
                        }
                        else
                        {
                            ConsolePrintHelpers.PrintRedText(file.SourceFilePath);
                        }

                        Console.WriteLine();
                        ConsolePrintHelpers.PrintWhiteText("  Encoded File          :  ");

                        if (encoding.LSR.OutputFilenameExtension == file.EncodedFileExtension)
                        {
                            ConsolePrintHelpers.PrintGreenText(file.EncodedFilePath);
                            Console.WriteLine();
                            ConsolePrintHelpers.PrintWhiteText("  Encoded File Ext      :  ");
                            ConsolePrintHelpers.PrintGreenText(file.EncodedFileExtension);
                        }
                        else
                        {
                            ConsolePrintHelpers.PrintRedText(file.EncodedFilePath);
                            Console.WriteLine();
                            ConsolePrintHelpers.PrintWhiteText("  Encoded File Ext      :  ");
                            ConsolePrintHelpers.PrintRedText(file.EncodedFileExtension);
                        }
                    }
                }
                else
                {
                    ConsolePrintHelpers.PrintCyanText("Encode");
                }

                Console.WriteLine("\n");
            }

            ConsolePrintHelpers.PressAnyKeyToContinue();
        }
Example #8
0
        private int SelectManualOption(AODLoadSheetRow skippedLSR)
        {
            List <char> acceptableSelections = new List <char>();

            int manualOptionsCount = skippedLSR.SearchCollection.GetManualOptionsCount();

            for (int i = 0; i < manualOptionsCount; i++)
            {
                acceptableSelections.Add(i.ToString().First());
            }

            acceptableSelections.Add('s');
            acceptableSelections.Add('x');

            skippedLSR.SearchCollection.PrintManualOptions(true);

            int cursorLeftChoice = Console.CursorLeft;

            Console.WriteLine("\n\n\n\n\n\n");
            ConsolePrintHelpers.PrintFullWidthLine();
            ConsolePrintHelpers.PrintGreenText("");  //restore text color to green
            Console.CursorTop -= 8;
            Console.CursorLeft = cursorLeftChoice;

            while (true)
            {
                while (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey(true);  //flush keyboard buffer
                }

                Console.CursorVisible = false;

                char ChoiceKeyPressed = char.ToLower(Console.ReadKey().KeyChar);

                if (!acceptableSelections.Any(selection => selection == ChoiceKeyPressed))
                {
                    Console.CursorLeft = cursorLeftChoice + 1;  //in case user presses "enter"
                    ConsolePrintHelpers.PrintYellowText("  Incorrect Key Pressed!");
                    Thread.Sleep(1000);
                    Console.CursorLeft = cursorLeftChoice;
                    ConsolePrintHelpers.PrintGreenText("                         ");
                    Console.CursorLeft = cursorLeftChoice;
                }
                else
                {
                    AudioFileOption optionToConfirm = null;

                    int cursorTopBeforeRefresh  = Console.CursorTop;
                    int cursorLeftBeforeRefresh = Console.CursorLeft;

                    if (ChoiceKeyPressed != 's' && ChoiceKeyPressed != 'x')
                    {
                        int selection = Convert.ToInt32(ChoiceKeyPressed.ToString());

                        optionToConfirm = skippedLSR.SearchCollection.GetSelectedOption(selection);

                        skippedLSR.SearchCollection.PrintManualOptionsConfirmation(optionToConfirm, ManualSelectionType.Confirm, true);
                    }
                    else if (ChoiceKeyPressed == 's')
                    {
                        skippedLSR.SearchCollection.PrintManualOptionsConfirmation(optionToConfirm, ManualSelectionType.SkipConfirm, true);
                    }
                    else if (ChoiceKeyPressed == 'x')
                    {
                        skippedLSR.SearchCollection.PrintManualOptionsConfirmation(optionToConfirm, ManualSelectionType.SkipAllConfirm, true);
                    }

                    Console.CursorTop  = cursorTopBeforeRefresh;
                    Console.CursorLeft = cursorLeftBeforeRefresh;

                    ConsolePrintHelpers.PrintWhiteText("  Confirm ►");
                    ConsolePrintHelpers.PrintGreenText(" ");

                    int cursorTopConfirm  = Console.CursorTop;
                    int cursorLeftConfirm = Console.CursorLeft;

                    Thread.Sleep(250);

                    while (Console.KeyAvailable)
                    {
                        ConsoleKeyInfo key = Console.ReadKey(true);  //flush keyboard buffer
                    }

                    Console.CursorVisible = false;

                    char ConfirmKeyPressed = char.ToLower(Console.ReadKey().KeyChar);

                    if (ChoiceKeyPressed == ConfirmKeyPressed)
                    {
                        if (ChoiceKeyPressed == 's')
                        {
                            skippedLSR.SearchCollection.PrintManualOptionsConfirmation(optionToConfirm, ManualSelectionType.SkipSelected, true);

                            return(-1);
                        }

                        if (ChoiceKeyPressed == 'x')
                        {
                            skippedLSR.SearchCollection.PrintManualOptionsConfirmation(optionToConfirm, ManualSelectionType.SkipAllSelected, true);

                            return(-2);
                        }

                        skippedLSR.SearchCollection.PrintManualOptionsConfirmation(optionToConfirm, ManualSelectionType.Selected, true);

                        Console.CursorTop = cursorTopConfirm;
                        Console.WriteLine();

                        return(Convert.ToInt32(ChoiceKeyPressed.ToString()));
                    }
                    else
                    {
                        Console.CursorLeft = cursorLeftConfirm + 1;  //in case user presses "enter"
                        ConsolePrintHelpers.PrintYellowText("  Not Confirmed!");
                        Thread.Sleep(1000);
                        Console.CursorLeft = cursorLeftChoice;
                        ConsolePrintHelpers.PrintGreenText("                               ");
                        Console.CursorLeft = cursorLeftChoice;
                    }
                }
            }
        }
        public void PrintAllLSRInfo()
        {
            Console.CursorVisible = false;

            Console.WriteLine();
            ConsolePrintHelpers.PrintFullWidthLine();
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  LoadSheet Row #              :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText((_LoadSheetRowNumber + 1).ToString());
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Artist                       :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_Artist);
            Console.CursorLeft = Globals.CursorsLeft[1];
            ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

            foreach (string artistToken in _Tokens.ArtistTokens.GetTokens)
            {
                ConsolePrintHelpers.PrintWhiteText("[");
                if (_SearchCollection.BestOption.ScoringArtistTokens.Any(token => token == artistToken))
                {
                    ConsolePrintHelpers.PrintGreenText(artistToken);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(artistToken);
                }
                ConsolePrintHelpers.PrintWhiteText("]  ");
            }
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Album                        :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_Album);
            Console.CursorLeft = Globals.CursorsLeft[1];
            ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

            foreach (string albumToken in _Tokens.AlbumTokens.GetTokens)
            {
                ConsolePrintHelpers.PrintWhiteText("[");
                if (_SearchCollection.BestOption.ScoringAlbumTokens.Any(token => token == albumToken))
                {
                    ConsolePrintHelpers.PrintGreenText(albumToken);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(albumToken);
                }
                ConsolePrintHelpers.PrintWhiteText("]  ");
            }
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Track #                      :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_TrackNumber);
            Console.CursorLeft = Globals.CursorsLeft[1];
            ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

            foreach (string trackNumberToken in _Tokens.TrackNumberTokens.GetTokens)
            {
                ConsolePrintHelpers.PrintWhiteText("[");
                if (_SearchCollection.BestOption.ScoringTrackNumberTokens.Any(token => token == trackNumberToken))
                {
                    ConsolePrintHelpers.PrintGreenText(trackNumberToken);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(trackNumberToken);
                }
                ConsolePrintHelpers.PrintWhiteText("]  ");
            }
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Track                        :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_Track);
            Console.CursorLeft = Globals.CursorsLeft[1];
            ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

            foreach (string trackToken in _Tokens.TrackTokens.GetTokens)
            {
                ConsolePrintHelpers.PrintWhiteText("[");
                if (_SearchCollection.BestOption.ScoringTrackTokens.Any(token => token == trackToken))
                {
                    ConsolePrintHelpers.PrintGreenText(trackToken);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(trackToken);
                }
                ConsolePrintHelpers.PrintWhiteText("]  ");
            }
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Loadsheet Cycle              :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_Cycle);
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Search Cycle                 :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_SearchCycle != _Cycle)
            {
                ConsolePrintHelpers.PrintYellowText(_SearchCycle);
            }
            else
            {
                ConsolePrintHelpers.PrintCyanText(_SearchCycle);
            }
            Console.CursorLeft = Globals.CursorsLeft[1];
            ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

            foreach (string cycleToken in _Tokens.CycleTokens.GetTokens)
            {
                ConsolePrintHelpers.PrintWhiteText("[");
                if (_SearchCollection.BestOption.ScoringBonusTokens.Any(token => token == cycleToken))
                {
                    ConsolePrintHelpers.PrintGreenText(cycleToken);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(cycleToken);
                }
                ConsolePrintHelpers.PrintWhiteText("]  ");
            }
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Airline                      :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_Airline);
            Console.CursorLeft = Globals.CursorsLeft[1];
            ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

            foreach (string airlineToken in _Tokens.AirlineTokens.GetTokens)
            {
                ConsolePrintHelpers.PrintWhiteText("[");
                if (_SearchCollection.BestOption.ScoringBonusTokens.Any(token => token == airlineToken))
                {
                    ConsolePrintHelpers.PrintGreenText(airlineToken);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(airlineToken);
                }
                ConsolePrintHelpers.PrintWhiteText("]  ");
            }
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Audio Type                   :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_AudioType);
            Console.CursorLeft = Globals.CursorsLeft[1];
            ConsolePrintHelpers.PrintWhiteText("Tokens:  ");

            foreach (string audioTypeToken in _Tokens.AudioTypeTokens.GetTokens)
            {
                ConsolePrintHelpers.PrintWhiteText("[");
                if (_SearchCollection.BestOption.ScoringBonusTokens.Any(token => token == audioTypeToken))
                {
                    ConsolePrintHelpers.PrintGreenText(audioTypeToken);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(audioTypeToken);
                }
                ConsolePrintHelpers.PrintWhiteText("]  ");
            }
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Ship To                      :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_ShipTo);
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Loadsheet Row Hash           :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintWhiteText("[");
            ConsolePrintHelpers.PrintCyanText(_LoadSheetRowHash);
            ConsolePrintHelpers.PrintWhiteText("]");
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Destination Path             :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_DestinationPath);
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Original Search Strategy     :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_OriginalSearchStrategy.ToString());
            Console.WriteLine();

            ConsolePrintHelpers.PrintWhiteText("  Applied  Search Strategy     :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_OriginalSearchStrategy == _Tokens.SearchStrategy)
            {
                ConsolePrintHelpers.PrintCyanText(_Tokens.SearchStrategy.ToString());
            }
            else
            {
                ConsolePrintHelpers.PrintYellowText(_Tokens.SearchStrategy.ToString());
            }
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Quick Search                 :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_IsQuickSearchActive)
            {
                ConsolePrintHelpers.PrintYellowText("Active");
                Console.WriteLine();
                ConsolePrintHelpers.PrintWhiteText("  Quick Search Note (Past LSR) :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintYellowText(_QuickSearchNotePastLSR);
                Console.WriteLine();
                ConsolePrintHelpers.PrintWhiteText("  Quick Search Note (Prev LSR) :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintYellowText(_QuickSearchNotePreviousLSR);
                Console.WriteLine("\n");
            }
            else
            {
                ConsolePrintHelpers.PrintCyanText("Disabled");
                Console.WriteLine();
                ConsolePrintHelpers.PrintWhiteText("  Quick Search Note (Past LSR) :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(_QuickSearchNotePastLSR);
                Console.WriteLine();
                ConsolePrintHelpers.PrintWhiteText("  Quick Search Note (Prev LSR) :  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(_QuickSearchNotePreviousLSR);
                Console.WriteLine("\n");
            }

            _SearchCollection.PrintBestOptionInfo();

            if (_IsApproved)
            {
                _SuggestedAudioFile.PrintSuggestedAudioFileInfo(true);
            }
            else
            {
                _SuggestedAudioFile.PrintSuggestedAudioFileInfo(false);
            }

            _SearchCollection.PrintSearchPasses();
        }
        public void PrintAudioLibraryFileInfo_DEBUG()
        {
            ConsolePrintHelpers.PrintHeader();

            ConsolePrintHelpers.PrintWhiteText("  Printing Audio Library File Info...");

            ConsolePrintHelpers.Wait();

            Console.WriteLine("\n\n");

            foreach (AudioLibraryFile file in _AudioLibraryFiles)
            {
                ConsolePrintHelpers.PrintFullWidthLine();

                ConsolePrintHelpers.PrintWhiteText("  Full Path                :  ");
                ConsolePrintHelpers.PrintCyanText(file.FullPath + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Sub-Directories Path     :  ");
                ConsolePrintHelpers.PrintCyanText(file.SubDirectoriesPath + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Sub-Dir Path (no dia.)   :  ");
                ConsolePrintHelpers.PrintCyanText(file.NoDiacriticsSubDirectoriesPath + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Sub-Dir Path (normal.)   :  ");
                ConsolePrintHelpers.PrintCyanText(file.NormalizedSubDirectoriesPath + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Sub-Dir-File (no dia.)   :  ");
                ConsolePrintHelpers.PrintCyanText(file.NoDiacriticsSubDirectoriesFilePath + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Sub-Dir-File (normal.)   :  ");
                ConsolePrintHelpers.PrintCyanText(file.NormalizedSubDirectoriesFilePath + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Filename                 :  ");
                ConsolePrintHelpers.PrintCyanText(file.Filename + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Filename (no diacritics) :  ");
                ConsolePrintHelpers.PrintCyanText(file.NoDiacriticsFilename + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Filename (normalized)    :  ");
                ConsolePrintHelpers.PrintCyanText(file.NormalizedFilename + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Track Number             :  ");
                ConsolePrintHelpers.PrintCyanText(file.TrackNumber + "\n");

                ConsolePrintHelpers.PrintWhiteText("  TrackNumber Pattern      :  ");
                ConsolePrintHelpers.PrintCyanText("[" + file.TrackNumberPattern + "]" + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Last Modified Date       :  ");
                ConsolePrintHelpers.PrintCyanText(file.ModifiedDate + "\n");

                ConsolePrintHelpers.PrintWhiteText("  File Size                :  ");
                ConsolePrintHelpers.PrintCyanText(file.FileSize + " bytes\n\n");

                ConsolePrintHelpers.PrintWhiteText("  Airline Code             :  ");
                ConsolePrintHelpers.PrintCyanText(file.AirlineCode + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Airline                  :  ");
                ConsolePrintHelpers.PrintCyanText(file.Airline + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Cycle Codes              :  ");
                foreach (string cycleCode in file.GetCycleCodes())
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintCyanText(cycleCode);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }

                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Appl. Dir+File (no dia)  :  ");
                ConsolePrintHelpers.PrintCyanText(file.NoDiacriticsApplicableSubDirectoriesFilePath + "\n");

                ConsolePrintHelpers.PrintWhiteText("  Appl. Dir+File (normal)  :  ");
                ConsolePrintHelpers.PrintCyanText(file.NormalizedApplicableSubDirectoriesFilePath + "\n");

                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  Applicable Tokens        :  ");
                foreach (string token in file.GetApplicableTokens())
                {
                    ConsolePrintHelpers.PrintWhiteText("[");
                    ConsolePrintHelpers.PrintCyanText(token);
                    ConsolePrintHelpers.PrintWhiteText("]  ");
                }

                Console.WriteLine();
            }

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

            ConsolePrintHelpers.PressAnyKeyToContinue();
        }