public void PrintManualOptions(AudioFileOption selectedOption, ManualSelectionType type, bool printSkipChoices) { if (type != ManualSelectionType.None && type != ManualSelectionType.Encoding) { int cursorTopChange = 6 + (_AudioFileOptions.Count * 2); Console.CursorTop -= cursorTopChange; } Console.WriteLine(); int longestPathLength = 0; int currentPathLength; foreach (AudioFileOption option in _AudioFileOptions) { currentPathLength = 10 + option.LibraryFile.FullPath.Length; if (currentPathLength > longestPathLength) { longestPathLength = currentPathLength; } } int selection = 0; foreach (AudioFileOption option in _AudioFileOptions) { Console.CursorLeft = 5; ConsolePrintHelpers.PrintGreenText(selection.ToString()); ConsolePrintHelpers.PrintWhiteText(" ► "); bool isSelected = false; if ((type == ManualSelectionType.Selected || type == ManualSelectionType.Encoding) && option.LibraryFile.FullPath == selectedOption.LibraryFile.FullPath) { ConsolePrintHelpers.PrintGreenText(option.LibraryFile.FullPath); isSelected = true; } else if (type == ManualSelectionType.Confirm && option.LibraryFile.FullPath == selectedOption.LibraryFile.FullPath) { ConsolePrintHelpers.PrintCyanText(option.LibraryFile.FullPath); isSelected = true; } else { ConsolePrintHelpers.PrintWhiteText(option.LibraryFile.FullPath); } string visualAlignmentBar = " "; for (int i = Console.CursorLeft; i < longestPathLength; i++) { visualAlignmentBar += "─"; } ConsolePrintHelpers.PrintDarkGrayText(visualAlignmentBar); Console.CursorLeft = longestPathLength; ConsolePrintHelpers.PrintWhiteText(" ◄ "); ConsolePrintHelpers.PrintGreenText(selection.ToString()); ConsolePrintHelpers.PrintWhiteText(" ["); if (isSelected) { ConsolePrintHelpers.PrintWhiteText("Cycle: "); } else { ConsolePrintHelpers.PrintDarkGrayText("Cycle: "); } if (option.LibraryFile.Cycle != "") { ConsolePrintHelpers.PrintCyanText(option.LibraryFile.Cycle.ToString().PadLeft(4)); } else { ConsolePrintHelpers.PrintDarkGrayText("----"); } if (isSelected) { ConsolePrintHelpers.PrintWhiteText(", Airline: "); } else { ConsolePrintHelpers.PrintDarkGrayText(", Airline: "); } if (option.LibraryFile.IsAirlineDetected) { ConsolePrintHelpers.PrintYellowText(option.LibraryFile.AirlineCode.ToString().PadLeft(2)); } else { ConsolePrintHelpers.PrintDarkGrayText("--"); } if (isSelected) { ConsolePrintHelpers.PrintWhiteText(", AudioType: "); } else { ConsolePrintHelpers.PrintDarkGrayText(", AudioType: "); } if (option.LibraryFile.AudioType != "") { ConsolePrintHelpers.PrintGreenText(option.LibraryFile.AudioType.ToString().PadLeft(9)); } else { ConsolePrintHelpers.PrintDarkGrayText("---------"); } if (isSelected) { ConsolePrintHelpers.PrintWhiteText(", Track #: "); } else { ConsolePrintHelpers.PrintDarkGrayText(", Track #: "); } if (option.LibraryFile.IsTrackNumberDetected) { ConsolePrintHelpers.PrintDarkCyanText(option.LibraryFile.TrackNumber.ToString().PadLeft(3)); } else { ConsolePrintHelpers.PrintDarkGrayText("---"); } if (isSelected) { ConsolePrintHelpers.PrintWhiteText(", Score: "); } else { ConsolePrintHelpers.PrintDarkGrayText(", Score: "); } ConsolePrintHelpers.PrintDarkYellowText(option.AccuracyScore.ToString().PadLeft(4)); if (isSelected) { ConsolePrintHelpers.PrintWhiteText(", Points: "); } else { ConsolePrintHelpers.PrintDarkGrayText(", Points: "); } ConsolePrintHelpers.PrintDarkMagentaText(option.GetTotalPoints().ToString().PadLeft(3)); ConsolePrintHelpers.PrintWhiteText("]\n\n"); selection++; } if (printSkipChoices) { Console.CursorLeft = 5; ConsolePrintHelpers.PrintGreenText("S"); ConsolePrintHelpers.PrintWhiteText(" ► "); if (type == ManualSelectionType.SkipSelected) { ConsolePrintHelpers.PrintGreenText("Skip This Row\n\n"); } else if (type == ManualSelectionType.SkipConfirm) { ConsolePrintHelpers.PrintCyanText("Skip This Row\n\n"); } else { ConsolePrintHelpers.PrintWhiteText("Skip This Row\n\n"); } Console.CursorLeft = 5; ConsolePrintHelpers.PrintGreenText("X"); ConsolePrintHelpers.PrintWhiteText(" ► "); if (type == ManualSelectionType.SkipAllSelected) { ConsolePrintHelpers.PrintGreenText("Skip All Remaining Rows\n\n"); } else if (type == ManualSelectionType.SkipAllConfirm) { ConsolePrintHelpers.PrintCyanText("Skip All Remaining Rows\n\n"); } else { ConsolePrintHelpers.PrintWhiteText("Skip All Remaining Rows\n\n"); } ConsolePrintHelpers.PrintWhiteText("\n Choice ►"); ConsolePrintHelpers.PrintGreenText(""); Console.CursorLeft += 1; //Would oddly chop off the choice's left side of the user inputted character ('0' would look like a backwards 'C') } }