private void WriteWorkbook(IWorkbook workbook, int cursorLeft)
        {
            if (!File.Exists(_Config.AODLoadSheetFilePath))
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing AOD Loadsheet:  ");
                ConsolePrintHelpers.PrintWhiteText(_Config.AODLoadSheetFilePath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            try
            {
                using (FileStream fsWrite = new FileStream(_Config.AODLoadSheetFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
                {
                    workbook.Write(fsWrite);
                    fsWrite.Close();
                }

                workbook.Close();

                Console.CursorLeft = cursorLeft;
                ConsolePrintHelpers.PrintYellowText("Updated");
            }
            catch (Exception)
            {
                Console.WriteLine("\n\n");
                ConsolePrintHelpers.PrintRedText("  ERROR: Unable To Update AOD Loadsheet Already Open In Excel\n\n\n");
                ConsolePrintHelpers.PrintRedText("  This Software Will Continue Once The Open Loadsheet Is Closed :  ");
                ConsolePrintHelpers.PrintWhiteText(_Config.AODLoadSheetFilePath);
                Console.WriteLine("\n\n");

                bool updateSuccessful = false;

                while (!updateSuccessful)
                {
                    try
                    {
                        using (FileStream fsWrite = new FileStream(_Config.AODLoadSheetFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
                        {
                            workbook.Write(fsWrite);
                            fsWrite.Close();
                        }

                        workbook.Close();

                        Console.CursorTop -= 9;
                        Console.CursorLeft = cursorLeft;
                        ConsolePrintHelpers.PrintYellowText("Updated");
                        Console.CursorTop += 9;

                        updateSuccessful = true;
                    }
                    catch (Exception)
                    {
                        ConsolePrintHelpers.Retry();
                    }
                }
            }

            IncrementalLoadSheetBackup();
        }
        public void ReadHistoryFromFiles()
        {
            ConsolePrintHelpers.PrintYellowText("\n\n\n  Reading And Validating History Files");
            ConsolePrintHelpers.PrintWhiteText(" ► ");

            bool cancelProgressTicker = false;

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

            List <Task> readingTasks = new List <Task>();

            readingTasks.Add(Task.Run(() => ReadApprovedLoadSheetRowsFromFile()));
            readingTasks.Add(Task.Run(() => ReadAlreadyEncodedFilesFromFile()));

            Task.WaitAll(readingTasks.ToArray());

            DeleteSeveredAlreadyEncodedFiles();

            GC.Collect();

            cancelProgressTicker = true;

            ticker.Wait();

            ConsolePrintHelpers.PrintYellowText("Done");
        }
        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 WriteEncodingHistoryToFile(bool printProgress)
        {
            bool cancelProgressTicker = false;
            Task ticker = null;

            if (printProgress)
            {
                ConsolePrintHelpers.PrintYellowText("\n\n\n  [DO NOT CLOSE CONSOLE WINDOW]  Updating Encoding History File");
                ConsolePrintHelpers.PrintWhiteText(" ► ");

                int cursorLeft = Console.CursorLeft;

                Console.WriteLine("\n\n");
                Console.CursorTop -= 3;
                Console.CursorLeft = cursorLeft;

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

            foreach (AlreadyEncodedFile file in _AlreadyEncodedFiles.Skip(Globals.MaximumLinesForHistoryFiles))  //If history is too large, delete oldest files (end of list)
            {
                DeleteAlreadyEncodedFile(file);
            }

            List <string> linesList = new List <string>();

            foreach (AlreadyEncodedFile file in _AlreadyEncodedFiles.Take(Globals.MaximumLinesForHistoryFiles)) //If history is too large, only keep records of newest files (front of list)
            {
                if (file.IsValid)                                                                               //No Re-checkIfValid() because when lines are read back in from file they are re-checked.
                {
                    string line = file.EncodedFilePath + "*" +
                                  file.EncodedFileModifiedDate + "*" +
                                  file.EncodedFileSize.ToString() + "*" +
                                  file.SourceFilePath + "*" +
                                  file.SourceFileModifiedDate + "*" +
                                  file.SourceFileSize.ToString() + "*" +
                                  file.EncodedStatus;

                    linesList.Add(line);
                }
            }

            try
            {
                File.WriteAllLines(_EncodingHistoryFilePath, linesList);
            }
            catch (Exception) { }

            if (printProgress)
            {
                cancelProgressTicker = true;

                ticker.Wait();

                ConsolePrintHelpers.PrintYellowText("Updated");
            }
        }
Esempio n. 5
0
        private bool PromptToViewSkippedEncodings()
        {
            ConsolePrintHelpers.PrintWhiteText("\n\n\n  Please Select...\n\n");

            ConsolePrintHelpers.PrintGreenText("    1");
            ConsolePrintHelpers.PrintWhiteText(" ► Exit Application\n\n");

            ConsolePrintHelpers.PrintGreenText("    2");
            ConsolePrintHelpers.PrintWhiteText(" ► View Skipped Encodings\n\n");

            Console.WriteLine("\n\n");
            Console.CursorTop -= 3;

            ConsolePrintHelpers.PrintWhiteText("  Choice ►");

            ConsolePrintHelpers.PrintGreenText(" ");

            while (true)
            {
                int cursorLeft = Console.CursorLeft;

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

                ConsoleKeyInfo keyPressed = Console.ReadKey();

                Thread.Sleep(500);

                if (keyPressed.KeyChar != '1' && keyPressed.KeyChar != '2')
                {
                    Console.CursorLeft = cursorLeft + 1; //in case user presses "enter"
                    ConsolePrintHelpers.PrintYellowText("  Incorrect Key Pressed!");
                    Thread.Sleep(1000);
                    Console.CursorLeft = cursorLeft;
                    ConsolePrintHelpers.PrintGreenText("                         ");
                    Console.CursorLeft = cursorLeft;
                }
                else
                {
                    if (keyPressed.KeyChar == '1')
                    {
                        return(true);
                    }

                    if (keyPressed.KeyChar == '2')
                    {
                        return(false);
                    }
                }
            }
        }
        public void PrintAudioFileOptions(AudioFileOption bestOption, string headerToPrint)
        {
            ConsolePrintHelpers.PrintWhiteText("\n  " + headerToPrint + " Option(s) :  ");

            int longestPathLength = 0;
            int currentPathLength;

            foreach (AudioFileOption option in _AudioFileOptions)
            {
                currentPathLength = Globals.CursorsLeft[0] + option.LibraryFile.FullPath.Length;

                if (currentPathLength > longestPathLength)
                {
                    longestPathLength = currentPathLength;
                }
            }

            foreach (AudioFileOption option in _AudioFileOptions)
            {
                Console.CursorLeft = Globals.CursorsLeft[0];

                if (option.LibraryFile.FullPath == bestOption.LibraryFile.FullPath)
                {
                    ConsolePrintHelpers.PrintGrayText(option.LibraryFile.FullPath);
                }
                else
                {
                    ConsolePrintHelpers.PrintDarkGrayText(option.LibraryFile.FullPath);
                }

                Console.CursorLeft = longestPathLength;

                ConsolePrintHelpers.PrintWhiteText("     [");
                ConsolePrintHelpers.PrintGrayText("S: ");
                ConsolePrintHelpers.PrintCyanText(option.AccuracyScore.ToString().PadLeft(4));
                ConsolePrintHelpers.PrintGrayText(",  T: ");
                ConsolePrintHelpers.PrintYellowText(option.GetTotalPoints().ToString().PadLeft(3));
                ConsolePrintHelpers.PrintGrayText(",  A/A: " + option.ArtistAlbumPoints.ToString().PadLeft(3) + ",  Tr: " + option.TrackPoints.ToString().PadLeft(3) + ", Size: " + option.LibraryFile.FileSize + " bytes");
                ConsolePrintHelpers.PrintWhiteText("]\n");
            }

            if (_AudioFileOptionsOriginalCount > _AudioFileOptions.Count)
            {
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintWhiteText((_AudioFileOptionsOriginalCount - _AudioFileOptions.Count).ToString());
                ConsolePrintHelpers.PrintDarkGrayText(" Remaining Files Not Printed...\n");
            }

            Console.WriteLine();
        }
Esempio n. 7
0
        private bool PromptToManuallyAssignSkippedEncodings()
        {
            ConsolePrintHelpers.PrintWhiteText("\n\n\n  Please Select...\n\n");

            ConsolePrintHelpers.PrintGreenText("    1");
            ConsolePrintHelpers.PrintWhiteText(" ► Manually Assign Source Files For Skipped Encodings\n\n");

            ConsolePrintHelpers.PrintGreenText("    2");
            ConsolePrintHelpers.PrintWhiteText(" ► Continue With Skipped Encodings\n\n");

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

            while (true)
            {
                int cursorLeft = Console.CursorLeft;

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

                ConsoleKeyInfo keyPressed = Console.ReadKey();

                Thread.Sleep(500);

                if (keyPressed.KeyChar != '1' && keyPressed.KeyChar != '2')
                {
                    Console.CursorLeft = cursorLeft + 1; //in case user presses "enter"
                    ConsolePrintHelpers.PrintYellowText("  Incorrect Key Pressed!");
                    Thread.Sleep(1000);
                    Console.CursorLeft = cursorLeft;
                    ConsolePrintHelpers.PrintGreenText("                         ");
                    Console.CursorLeft = cursorLeft;
                }
                else
                {
                    if (keyPressed.KeyChar == '1')
                    {
                        return(true);
                    }

                    if (keyPressed.KeyChar == '2')
                    {
                        return(false);
                    }
                }
            }
        }
        public void WriteApprovalHistoryToFile(bool printProgress)
        {
            bool cancelProgressTicker = false;
            Task ticker = null;

            if (printProgress)
            {
                ConsolePrintHelpers.PrintYellowText("\n\n\n  [DO NOT CLOSE CONSOLE WINDOW]  Updating Approval History File");
                ConsolePrintHelpers.PrintWhiteText(" ► ");

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

            List <string> linesList = new List <string>();

            foreach (ApprovedLoadSheetRow approvedLSR in _ApprovedLoadSheetRows.Take(Globals.MaximumLinesForHistoryFiles)) //Trim history if too large (long term performance concerns)
            {
                if (approvedLSR.IsValid)                                                                                   //No Re-checkIfValid() because when lines are read back in from file they are re-checked.
                {
                    string line = approvedLSR.SourceFilePath + "*" +
                                  approvedLSR.SourceFileModifiedDate + "*" +
                                  approvedLSR.SourceFileSize.ToString() + "*" +
                                  approvedLSR.LoadSheetRowHash + "*" +
                                  approvedLSR.TotalPoints + "*" +
                                  approvedLSR.AccuracyScore.ToString() + "*" +
                                  approvedLSR.AccuracyType.ToString();

                    linesList.Add(line);
                }
            }

            try
            {
                File.WriteAllLines(_ApprovalHistoryFilePath, linesList);
            }
            catch (Exception) { }

            if (printProgress)
            {
                cancelProgressTicker = true;

                ticker.Wait();

                ConsolePrintHelpers.PrintYellowText("Updated");
            }
        }
        public void WriteHistoryToFiles()
        {
            ConsolePrintHelpers.PrintYellowText("\n\n\n  [DO NOT CLOSE CONSOLE WINDOW]  Updating All History Files");
            ConsolePrintHelpers.PrintWhiteText(" ► ");
            int cursorLeft = Console.CursorLeft;

            Console.WriteLine("\n\n");
            Console.CursorTop -= 3;

            List <Task> writingTasks = new List <Task>();

            writingTasks.Add(Task.Run(() => WriteApprovalHistoryToFile(false)));
            writingTasks.Add(Task.Run(() => WriteEncodingHistoryToFile(false)));

            Task.WaitAll(writingTasks.ToArray());

            Console.CursorLeft = cursorLeft;
            ConsolePrintHelpers.PrintYellowText("Updated");
        }
        public void AddNewApprovedLoadSheetRow(AODLoadSheetRow lsr)
        {
            ConsolePrintHelpers.PrintYellowText("\n\n  Adding New Approved Row To History");
            ConsolePrintHelpers.PrintWhiteText(" ► ");

            if (lsr.IsSuggestedAudioFileAssigned && lsr.SuggestedAudioFile.AccuracyType != AccuracyType.Accurate && lsr.IsApproved)      //Inaccurate and already manually 'Approved'
            {
                ApprovedLoadSheetRow approvedLSR = new ApprovedLoadSheetRow(lsr);

                if (approvedLSR.IsValid)                          //No check on unique lsr hashes, as they would all be unique at this point (would be already re-approved)
                {
                    _ApprovedLoadSheetRows.AddFirst(approvedLSR); //Add to BEGINNING of list (most recent NEW approvedLSRs first)

                    ConsolePrintHelpers.PrintYellowText("Added");

                    return;
                }
            }

            ConsolePrintHelpers.PrintRedText("Not Added");
        }
Esempio n. 11
0
        private void DetermineSkippedLoadsheetRows()
        {
            ConsolePrintHelpers.PrintYellowText("\n\n\n  Determining Skipped Loadsheet Rows");
            ConsolePrintHelpers.PrintWhiteText(" ► ");

            bool cancelProgressTicker = false;

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

            foreach (AODLoadSheetRow lsr in _Controller.LoadSheet.GetAODLoadSheetRows)
            {
                if (IsLSREligibleForEncodingOrCopying(lsr))
                {
                    _TempEncodingOrCopyList.Add(lsr);   //Ordered by load sheet row number (1 -> n)
                }
                else
                {
                    _TempSkippedList.Add(lsr);          //Ordered by load sheet row number (1 -> n)
                }
            }

            PrepareManualOptions();

            foreach (AODLoadSheetRow skippedRow in _TempSkippedList.ToList())
            {
                CheckApprovalHistoryAgain(skippedRow);  //Approval history can look at the 'Manual Options' list for each skippedRow and possibly find an approved source file included in that list
            }

            cancelProgressTicker = true;

            ticker.Wait();

            ConsolePrintHelpers.PrintYellowText("Done");

            ConsolePrintHelpers.PrintWhiteText("\n\n\n  Skipped Loadsheet Rows Count : ");
            ConsolePrintHelpers.PrintCyanText(_TempSkippedList.Count.ToString());
        }
        private void MigrateAlreadyEncodedFiles()
        {
            ConsolePrintHelpers.PrintYellowText("\n\n\n  Migrating Files...\n\n");

            int count = 1;

            foreach (AlreadyEncodedFile file in _AlreadyEncodedFiles)
            {
                ConsolePrintHelpers.PrintWhiteText("  Copying File:  ");
                ConsolePrintHelpers.PrintCyanText(count.ToString() + " of " + _AlreadyEncodedFiles.Count);
                Console.WriteLine();

                string oldFilePath = file.EncodedFilePath;

                string newFilePath = _Config.HistoryFilesArchiveDirectory + "\\" + Guid.NewGuid().ToString() + file.EncodedFileExtension;

                ConsolePrintHelpers.PrintWhiteText("  Old Path:  ");
                ConsolePrintHelpers.PrintCyanText(oldFilePath);
                Console.WriteLine();

                ConsolePrintHelpers.PrintWhiteText("  New Path:  ");
                ConsolePrintHelpers.PrintCyanText(newFilePath);
                Console.WriteLine();

                ConsolePrintHelpers.PrintYellowText("  Copying History File");
                ConsolePrintHelpers.PrintWhiteText(" ► ");

                bool cancelProgressTicker = false;

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

                File.Copy(oldFilePath, newFilePath);

                cancelProgressTicker = true;

                ticker.Wait();

                ConsolePrintHelpers.PrintYellowText("Done");
                Console.WriteLine();

                file.SetEncodedFilePath(newFilePath);

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

                file.ReCheckIfValid();

                ConsolePrintHelpers.PrintWhiteText("  File isValid:  ");

                if (file.IsValid)
                {
                    ConsolePrintHelpers.PrintCyanText("Valid");
                }
                else
                {
                    ConsolePrintHelpers.PrintRedText("NOT Valid");

                    ConsolePrintHelpers.PressAnyKeyToContinue();
                }

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

                count++;
            }

            ConsolePrintHelpers.PrintYellowText("  Press Any Key to Update Already Encoded History File...");

            ConsolePrintHelpers.PressAnyKeyToContinue();

            WriteEncodingHistoryToFile(true);

            ConsolePrintHelpers.PressAnyKeyToContinue();
        }
Esempio n. 13
0
        public void UpdateLoadSheetFinishedEncodings(List <AudioFileEncoding> finishedEncodings)
        {
            if (finishedEncodings.Count == 0)
            {
                ConsolePrintHelpers.PrintYellowText("\n\n\n  AODLoadsheet Is Current...");
                return;
            }

            finishedEncodings = finishedEncodings.OrderBy(encoding => encoding.LSR.LoadSheetRowNumber).ToList();

            ConsolePrintHelpers.PrintYellowText("\n\n\n  [DO NOT CLOSE CONSOLE WINDOW]  Updating AODLoadsheet Rows.  Range: ");
            ConsolePrintHelpers.PrintWhiteText((finishedEncodings.First().LSR.LoadSheetRowNumber + 1).ToString() + " thru " + (finishedEncodings.Last().LSR.LoadSheetRowNumber + 1).ToString() + " ► ");
            int cursorLeft = Console.CursorLeft;

            Console.WriteLine("\n\n");
            Console.CursorTop -= 3;

            IWorkbook workbook = ReadWorkBook();
            ISheet    sheet    = workbook.GetSheet(_Config.AODLoadSheetWorkSheetName);
            IRow      row;
            ICell     cell;

            XSSFCellStyle green = (XSSFCellStyle)workbook.CreateCellStyle();

            byte[] rgb = new byte[3] {
                0, 176, 80
            };
            green.SetFillForegroundColor(new XSSFColor(rgb));
            green.FillPattern       = FillPattern.SolidForeground;
            green.BorderTop         = BorderStyle.Thin;
            green.BorderBottom      = BorderStyle.Thin;
            green.BorderLeft        = BorderStyle.Thin;
            green.BorderRight       = BorderStyle.Thin;
            green.Alignment         = HorizontalAlignment.Left;
            green.VerticalAlignment = VerticalAlignment.Center;

            ICellStyle yellow = workbook.CreateCellStyle();

            yellow.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.LightYellow.Index;
            yellow.FillPattern         = FillPattern.SolidForeground;
            yellow.BorderTop           = BorderStyle.Thin;
            yellow.BorderBottom        = BorderStyle.Thin;
            yellow.BorderLeft          = BorderStyle.Thin;
            yellow.BorderRight         = BorderStyle.Thin;
            yellow.Alignment           = HorizontalAlignment.Left;
            yellow.VerticalAlignment   = VerticalAlignment.Center;

            ICellStyle red = workbook.CreateCellStyle();

            red.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
            red.FillPattern         = FillPattern.SolidForeground;
            red.BorderTop           = BorderStyle.Thin;
            red.BorderBottom        = BorderStyle.Thin;
            red.BorderLeft          = BorderStyle.Thin;
            red.BorderRight         = BorderStyle.Thin;
            red.Alignment           = HorizontalAlignment.Left;
            red.VerticalAlignment   = VerticalAlignment.Center;

            ICellStyle blue = workbook.CreateCellStyle();

            blue.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.LightBlue.Index;
            blue.FillPattern         = FillPattern.SolidForeground;
            blue.BorderTop           = BorderStyle.Thin;
            blue.BorderBottom        = BorderStyle.Thin;
            blue.BorderLeft          = BorderStyle.Thin;
            blue.BorderRight         = BorderStyle.Thin;
            blue.Alignment           = HorizontalAlignment.Left;
            blue.VerticalAlignment   = VerticalAlignment.Center;


            foreach (AudioFileEncoding finishedEncoding in finishedEncodings)
            {
                AODLoadSheetRow lsr = finishedEncoding.LSR;

                row = sheet.GetRow(lsr.LoadSheetRowNumber) ?? sheet.CreateRow(lsr.LoadSheetRowNumber);

                if ((lsr.SuggestedAudioFile.AccuracyType == AccuracyType.Accurate || lsr.IsApproved) && (lsr.EncodingResult == Globals.Encoded || lsr.EncodingResult == Globals.Copied))
                {
                    foreach (int colNum in _Config.AODLoadSheetColumnNumsWrite)
                    {
                        cell = row.GetCell(colNum) ?? row.CreateCell(colNum);

                        if (colNum == _Config.AODLoadSheetColumnNumsWrite[0])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.FullPath); cell.CellStyle = green;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[1])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.AccuracyScore); cell.CellStyle = green;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[2])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.AccuracyNote);
                            if (lsr.SuggestedAudioFile.AccuracyNote != Globals.HistoricalApprovalNote)
                            {
                                cell.CellStyle = green;
                            }
                            else
                            {
                                cell.CellStyle = blue;
                            }
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[3])
                        {
                            cell.SetCellValue(lsr.EncodingResult); cell.CellStyle = green;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[4])
                        {
                            cell.SetCellValue(lsr.DestinationPath); cell.CellStyle = green;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[5])
                        {
                            cell.SetCellValue(lsr.EncodedFileDurationPretty); cell.CellStyle = green;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[6])
                        {
                            cell.SetCellValue(lsr.EncodedFileDurationSeconds); cell.CellStyle = green;
                        }
                    }
                }
                else if (lsr.SuggestedAudioFile.AccuracyType == AccuracyType.Questionable && lsr.EncodingResult == Globals.Skipped)
                {
                    foreach (int colNum in _Config.AODLoadSheetColumnNumsWrite)
                    {
                        cell = row.GetCell(colNum) ?? row.CreateCell(colNum);

                        if (colNum == _Config.AODLoadSheetColumnNumsWrite[0])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.FullPath); cell.CellStyle = yellow;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[1])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.AccuracyScore); cell.CellStyle = yellow;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[2])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.AccuracyNote);
                            if (lsr.SuggestedAudioFile.AccuracyNote != Globals.HistoricalApprovalNote)
                            {
                                cell.CellStyle = yellow;
                            }
                            else
                            {
                                cell.CellStyle = blue;
                            }
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[3])
                        {
                            cell.SetCellValue(lsr.EncodingResult); cell.CellStyle = yellow;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[4])
                        {
                            cell.SetCellValue(lsr.DestinationPath); cell.CellStyle = yellow;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[5])
                        {
                            cell.SetCellValue(Globals.Skipped); cell.CellStyle = yellow;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[6])
                        {
                            cell.SetCellValue(Globals.Skipped); cell.CellStyle = yellow;
                        }
                    }
                }
                else  //AccuracyType.HighRisk  or  EncodingResult == "Failed:  ..."
                {
                    foreach (int colNum in _Config.AODLoadSheetColumnNumsWrite)
                    {
                        cell = row.GetCell(colNum) ?? row.CreateCell(colNum);

                        if (colNum == _Config.AODLoadSheetColumnNumsWrite[0])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.FullPath); cell.CellStyle = red;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[1])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.AccuracyScore); cell.CellStyle = red;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[2])
                        {
                            cell.SetCellValue(lsr.SuggestedAudioFile.AccuracyNote);
                            if (lsr.SuggestedAudioFile.AccuracyNote != Globals.HistoricalApprovalNote)
                            {
                                cell.CellStyle = red;
                            }
                            else
                            {
                                cell.CellStyle = blue;
                            }
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[3])
                        {
                            cell.SetCellValue(lsr.EncodingResult); cell.CellStyle = red;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[4])
                        {
                            cell.SetCellValue(lsr.DestinationPath); cell.CellStyle = red;
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[5])
                        {
                            if (lsr.EncodingResult == Globals.Skipped)
                            {
                                cell.SetCellValue(Globals.Skipped); cell.CellStyle = red;
                            }
                            else
                            {
                                cell.SetCellValue(Globals.Failed);  cell.CellStyle = red;
                            }
                        }
                        else if (colNum == _Config.AODLoadSheetColumnNumsWrite[6])
                        {
                            if (lsr.EncodingResult == Globals.Skipped)
                            {
                                cell.SetCellValue(Globals.Skipped); cell.CellStyle = red;
                            }
                            else
                            {
                                cell.SetCellValue(Globals.Failed);  cell.CellStyle = red;
                            }
                        }
                    }
                }
            }

            WriteWorkbook(workbook, cursorLeft);
        }
Esempio n. 14
0
        private void UpdateLoadSheetIncompleteRows(List <int> incompleteAODLoadSheetRowNums)
        {
            if (incompleteAODLoadSheetRowNums.Count == 0)
            {
                ConsolePrintHelpers.PrintYellowText("  AODLoadsheet Has No Incomplete Rows...");
                return;
            }

            ConsolePrintHelpers.PrintYellowText("  [DO NOT CLOSE CONSOLE WINDOW]  Updating AODLoadsheet Incomplete Rows.  Range: ");
            ConsolePrintHelpers.PrintWhiteText((incompleteAODLoadSheetRowNums.First() + 1).ToString() + " thru " + (incompleteAODLoadSheetRowNums.Last() + 1).ToString() + " ► ");
            int cursorLeft = Console.CursorLeft;

            IWorkbook workbook = ReadWorkBook();
            ISheet    sheet    = workbook.GetSheet(_Config.AODLoadSheetWorkSheetName);
            IRow      row;
            ICell     cell;

            ICellStyle red = workbook.CreateCellStyle();

            red.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Red.Index;
            red.FillPattern         = FillPattern.SolidForeground;
            red.BorderTop           = BorderStyle.Thin;
            red.BorderBottom        = BorderStyle.Thin;
            red.BorderLeft          = BorderStyle.Thin;
            red.BorderRight         = BorderStyle.Thin;
            red.Alignment           = HorizontalAlignment.Left;
            red.VerticalAlignment   = VerticalAlignment.Center;

            string acceptableOutputExtensions = "";

            foreach (string ext in Globals.AcceptableOutputExtensions)
            {
                acceptableOutputExtensions += (ext + ", ");
            }

            acceptableOutputExtensions = acceptableOutputExtensions.Remove(acceptableOutputExtensions.Length - 2);

            foreach (int rowNum in incompleteAODLoadSheetRowNums)
            {
                row = sheet.GetRow(rowNum) ?? sheet.CreateRow(rowNum);

                foreach (int colNum in _Config.AODLoadSheetColumnNumsWrite)
                {
                    cell = row.GetCell(colNum) ?? row.CreateCell(colNum);

                    if (colNum == _Config.AODLoadSheetColumnNumsWrite[0])
                    {
                        cell.SetCellValue("Incomplete Row:  Must have [Airline (Valid Code) / Alt. Cycle (Optional Valid Cycle) / Artist / Album / Track# (Integer) / Track / Filename (" + acceptableOutputExtensions + ") / AudioType / ShipTo / NO DATES]");
                    }
                    else if (colNum == _Config.AODLoadSheetColumnNumsWrite[1])
                    {
                        cell.SetCellValue(Globals.Skipped);
                    }
                    else if (colNum == _Config.AODLoadSheetColumnNumsWrite[2])
                    {
                        cell.SetCellValue(Globals.Skipped);
                    }
                    else if (colNum == _Config.AODLoadSheetColumnNumsWrite[3])
                    {
                        cell.SetCellValue(Globals.Skipped);
                    }
                    else if (colNum == _Config.AODLoadSheetColumnNumsWrite[4])
                    {
                        cell.SetCellValue(Globals.Skipped);
                    }
                    else if (colNum == _Config.AODLoadSheetColumnNumsWrite[5])
                    {
                        cell.SetCellValue(Globals.Skipped);
                    }
                    else if (colNum == _Config.AODLoadSheetColumnNumsWrite[6])
                    {
                        cell.SetCellValue(Globals.Skipped);
                    }

                    cell.CellStyle = red;
                }
            }

            WriteWorkbook(workbook, cursorLeft);
        }
        private bool PromptForUsingManualShortcutsDirectory()
        {
            ConsolePrintHelpers.PrintWhiteText("  Please Select...\n\n");

            ConsolePrintHelpers.PrintGreenText("    1");
            ConsolePrintHelpers.PrintWhiteText(" ► Scan Entire Audio Library For Source Files\n\n");

            foreach (string rootPath in _AudioLibraryRootPaths)
            {
                ConsolePrintHelpers.PrintDarkGrayText("         " + rootPath + "\n");
            }

            Console.WriteLine();

            ConsolePrintHelpers.PrintGreenText("    2");
            ConsolePrintHelpers.PrintWhiteText(" ► Scan Manual Shortcuts Directory [");
            ConsolePrintHelpers.PrintCyanText(ManualShortcutsDirectory);
            ConsolePrintHelpers.PrintWhiteText("]\n\n");

            ConsolePrintHelpers.PrintDarkGrayText("         NOTE:  Only provide shortcuts to an absolute path, NOT an arbitrary mapped drive.\n");
            ConsolePrintHelpers.PrintDarkGrayText("                Shortcuts should be targeting directories and files in:  " + _AudioLibraryRoot + "\n\n");

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

            while (true)
            {
                int cursorLeft = Console.CursorLeft;

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

                ConsoleKeyInfo keyPressed = Console.ReadKey();

                Thread.Sleep(500);

                if (keyPressed.KeyChar != '1' && keyPressed.KeyChar != '2')
                {
                    Console.CursorLeft = cursorLeft + 1;  //in case user presses "enter"
                    ConsolePrintHelpers.PrintYellowText("  Incorrect Key Pressed!");
                    Thread.Sleep(1000);
                    Console.CursorLeft = cursorLeft;
                    ConsolePrintHelpers.PrintGreenText("                         ");
                    Console.CursorLeft = cursorLeft;
                }
                else
                {
                    if (keyPressed.KeyChar == '1')
                    {
                        return(false);
                    }

                    if (keyPressed.KeyChar == '2')
                    {
                        return(true);
                    }
                }
            }
        }
        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();
        }
        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 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')
            }
        }
Esempio n. 19
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;
                    }
                }
            }
        }
Esempio n. 20
0
        private void FinishEncodingQueue()
        {
            ConsolePrintHelpers.PrintYellowText("\n\n\n  Optimizing Encoding Queue");
            ConsolePrintHelpers.PrintWhiteText(" ► ");

            bool cancelProgressTicker = false;

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

            _TempEncodingOrCopyList = _TempEncodingOrCopyList.OrderBy(lsr => lsr.LoadSheetRowNumber).ToList();  //Ordered by load sheet row number (1 -> n)

            _TempSkippedList = _TempSkippedList.OrderBy(lsr => lsr.LoadSheetRowNumber).ToList();                //Ordered by load sheet row number (1 -> n)

            if (!Globals.IsDevelopmentEnvironment)
            {
                List <AODLoadSheetRow> encodingList       = new List <AODLoadSheetRow>();
                List <AODLoadSheetRow> uniqueEncodingList = new List <AODLoadSheetRow>();
                List <AODLoadSheetRow> copyFromAlreadyEncodedFilesList = new List <AODLoadSheetRow>();
                List <AODLoadSheetRow> copyFromPendingEncodedFilesList = new List <AODLoadSheetRow>();

                _TempEncodingOrCopyList = _TempEncodingOrCopyList.OrderByDescending(lsr => lsr.SuggestedAudioFile.FileSize).ToList();  //Order by largest -> smallest source files (speeds up parallel encoding)

                foreach (AODLoadSheetRow lsr in _TempEncodingOrCopyList)
                {
                    AlreadyEncodedFile file = _Controller.History.GetAlreadyEncodedFile(lsr);

                    if (file == null)
                    {
                        encodingList.Add(lsr);  //Files that need to be encoded (and some that could be copied, we'll check in the next step)  (ordered by DESCENDING source file size)
                    }
                    else
                    {
                        copyFromAlreadyEncodedFilesList.Add(lsr);  //Files that are strictly able to be copied (not waiting on any encodes to finish)  (ordered by DESCENDING source file size)
                    }
                }

                foreach (AODLoadSheetRow lsr in encodingList)
                {
                    if (!uniqueEncodingList.Any(uniqueLSREncoding => lsr.IsLSREncodingEligibleForCopying(uniqueLSREncoding.PotentialFile)))
                    {
                        uniqueEncodingList.Add(lsr);  //Files that absolutely have to be encoded from scratch (ordered by DESCENDING source file size)
                    }
                    else
                    {
                        copyFromPendingEncodedFilesList.Add(lsr);  //Any additional files added here can be copied once the uniquely encoded list above creates those encoded files  (ordered by DESCENDING source file size)
                    }
                }

                int encodingID = 1;

                foreach (AODLoadSheetRow lsr in uniqueEncodingList)
                {
                    _EncodingQueue.Enqueue(new AudioFileEncoding(lsr, encodingID, false));  //Files that NEED to be encoded, added first (ordered by DESCENDING source file size)
                    encodingID++;
                }

                foreach (AODLoadSheetRow lsr in copyFromAlreadyEncodedFilesList)
                {
                    _EncodingQueue.Enqueue(new AudioFileEncoding(lsr, encodingID, true));  //Files that can be copied from already encoded files added next (The are not waiting on any prior encodes to finish) (ordered by DESCENDING source file size)
                    encodingID++;
                }

                foreach (AODLoadSheetRow lsr in copyFromPendingEncodedFilesList)
                {
                    _EncodingQueue.Enqueue(new AudioFileEncoding(lsr, encodingID, true));  //Files that can be copied from pending encodes once they complete  (ordered by DESCENDING source file size)
                    encodingID++;
                }
            }
            else  //Keep original load sheet row number ordering for better debugging in Development Environment
            {
                int encodingID = 1;

                foreach (AODLoadSheetRow lsr in _TempEncodingOrCopyList)
                {
                    _EncodingQueue.Enqueue(new AudioFileEncoding(lsr, encodingID, false));  //Ordered by load sheet row number (1 -> n)
                    encodingID++;
                }
            }

            foreach (AODLoadSheetRow skippedLSR in _TempSkippedList)
            {
                _SkippedQueue.Enqueue(skippedLSR);  //Ordered by load sheet row number (1 -> n)
            }

            //Temporary lists no longer needed
            _TempEncodingOrCopyList = null;
            _TempSkippedList        = null;
            GC.Collect();

            cancelProgressTicker = true;

            ticker.Wait();

            ConsolePrintHelpers.PrintYellowText("Done");

            ConsolePrintHelpers.Wait();
        }
        public void PrintBasicLSRInfo()
        {
            Console.CursorVisible = false;

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

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

            ConsolePrintHelpers.PrintWhiteText("  Search Cycle                 :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_SearchCycle == _Cycle)
            {
                ConsolePrintHelpers.PrintCyanText(_SearchCycle);
            }
            else
            {
                ConsolePrintHelpers.PrintYellowText(_SearchCycle + "  (Alternative Cycle)");
            }
            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 + "    (" + _AirlineFullName + ")");
            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("  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("\n");

            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\n\n");
        }
Esempio n. 22
0
        public void PrintAudioFileEncoding()
        {
            if (Globals.IsDevelopmentEnvironment)
            {
                _LSR.PrintAllLSRInfo();
            }
            else
            {
                _LSR.PrintProductionLSRInfo();
            }

            ConsolePrintHelpers.PrintGreenText("  Encoding ID                  ");
            ConsolePrintHelpers.PrintWhiteText(":  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_EncodingID.ToString());
            Console.WriteLine();

            ConsolePrintHelpers.PrintGreenText("  Is Approved                  ");
            ConsolePrintHelpers.PrintWhiteText(":  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_LSR.IsApproved)
            {
                ConsolePrintHelpers.PrintYellowText("True");
            }
            else
            {
                ConsolePrintHelpers.PrintCyanText("False");
            }
            Console.WriteLine();

            ConsolePrintHelpers.PrintGreenText("  Action Taken                 ");
            ConsolePrintHelpers.PrintWhiteText(":  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText(_CopyOrEncodeActionTaken);

            if (_FileToCopy != null)
            {
                Console.WriteLine("\n");

                if (_FileToCopy.LoadSheetRowNumber >= 0)  //Only print row number if it came from the load sheet with positive row number (Skip if from Encoding History File; LSRow# = -1)
                {
                    ConsolePrintHelpers.PrintGreenText("  Already Encoded LS Row #     ");
                    ConsolePrintHelpers.PrintWhiteText(":  ");
                    Console.CursorLeft = Globals.CursorsLeft[0];
                    ConsolePrintHelpers.PrintCyanText((_FileToCopy.LoadSheetRowNumber + 1).ToString());
                    Console.WriteLine();
                }

                ConsolePrintHelpers.PrintGreenText("  Source File Path             ");
                ConsolePrintHelpers.PrintWhiteText(":  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(_FileToCopy.SourceFilePath.ToString());
                Console.WriteLine();

                ConsolePrintHelpers.PrintGreenText("  Already Encoded File Path    ");
                ConsolePrintHelpers.PrintWhiteText(":  ");
                Console.CursorLeft = Globals.CursorsLeft[0];
                ConsolePrintHelpers.PrintCyanText(_FileToCopy.EncodedFilePath.ToString());
            }

            Console.WriteLine("\n");
        }
Esempio n. 23
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());
                }
            }
        }
Esempio n. 24
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();
        }
        public void PrintSuggestedAudioFileInfo(bool isManuallySelected)
        {
            ConsolePrintHelpers.PrintWhiteText("  Suggested Audio File Path    :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_AccuracyType == AccuracyType.Accurate || isManuallySelected)
            {
                ConsolePrintHelpers.PrintGreenText(_FullPath);
            }
            else if (_AccuracyType == AccuracyType.Questionable)
            {
                ConsolePrintHelpers.PrintYellowText(_FullPath);
            }
            else
            {
                ConsolePrintHelpers.PrintRedText(_FullPath);
            }
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Accuracy Score               :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_AccuracyType == AccuracyType.Accurate || isManuallySelected)
            {
                ConsolePrintHelpers.PrintGreenText(_AccuracyScore.ToString());
            }
            else if (_AccuracyType == AccuracyType.Questionable)
            {
                ConsolePrintHelpers.PrintYellowText(_AccuracyScore.ToString());
            }
            else
            {
                ConsolePrintHelpers.PrintRedText(_AccuracyScore.ToString());
            }
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Total Points                 :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_AccuracyType == AccuracyType.Accurate || isManuallySelected)
            {
                ConsolePrintHelpers.PrintGreenText(_TotalPoints.ToString());
            }
            else if (_AccuracyType == AccuracyType.Questionable)
            {
                ConsolePrintHelpers.PrintYellowText(_TotalPoints.ToString());
            }
            else
            {
                ConsolePrintHelpers.PrintRedText(_TotalPoints.ToString());
            }
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Accuracy Note                :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            if (_AccuracyType == AccuracyType.Accurate || isManuallySelected)
            {
                ConsolePrintHelpers.PrintGreenText(_AccuracyNote);
            }
            else if (_AccuracyType == AccuracyType.Questionable)
            {
                ConsolePrintHelpers.PrintYellowText(_AccuracyNote);
            }
            else
            {
                ConsolePrintHelpers.PrintRedText(_AccuracyNote);
            }
            Console.WriteLine("\n");

            ConsolePrintHelpers.PrintWhiteText("  Suggested Audio File Size    :  ");
            Console.CursorLeft = Globals.CursorsLeft[0];
            ConsolePrintHelpers.PrintCyanText((_FileSize / 1024 / 1024).ToString() + " MB");
            Console.WriteLine("\n");
        }
Esempio n. 26
0
        public void EncodeAudioFiles()
        {
            if (!_IsQueueBuilt)
            {
                BuildEncodingQueue();
            }

            Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch();

            ConsolePrintHelpers.PrintWhiteText("  Encoding Audio Files...");

            PrintEncodingQueueAndHistoryStats();

            _History.WriteApprovalHistoryToFile(true);

            ConsolePrintHelpers.Wait();

            CleanTranscodeTempDirectory();

            _LoadSheetUpdateInterval = Globals.InitialLoadSheetUpdateInterval;

            _ActiveEncodings.Clear();

            _FinishedEncodings.Clear();

            _WaitingEncodings.Clear();

            _EncodedFilesCount = 0;

            _CopiedFilesCount = 0;

            int encodingQueueCount = _EncodingQueues.EncodingQueue.Count;

            for (int i = 0; i < encodingQueueCount; i++)
            {
                AudioFileEncoding encoding = _EncodingQueues.EncodingQueue.Dequeue();

                CopyOrEncodeAudioFile(encoding);

                AddToActiveOrWaitingList(encoding);

                IncrementalUpdateLoadSheet();

                encoding.PrintAudioFileEncoding();

                PrintEncodingStatsHeaders();

                CheckForFinishedEncodings(Globals.MaxDegreeOfParallelism);
            }

            foreach (AudioFileEncoding waitingEncoding in _WaitingEncodings)
            {
                _ActiveEncodings.Add(waitingEncoding);
            }

            foreach (AODLoadSheetRow skippedLSR in _EncodingQueues.SkippedQueue)
            {
                _FinishedEncodings.Add(new AudioFileEncoding(skippedLSR, 0, false));  //Add skipped rows for updating back to loadsheet
            }

            if (encodingQueueCount > 0)
            {
                CheckForFinishedEncodings(1);
            }

            _History.WriteEncodingHistoryToFile(true);

            UpdateLoadSheet();   //final update to AOD Loadsheet with remaining rows not saved yet (including skipped rows)

            ConsolePrintHelpers.PrintDuration(stopwatch, "Encoding");
            ConsolePrintHelpers.PrintYellowText("\n\n\n  Encoding Run Completed");

            if (_EncodingQueues.SkippedQueue.Count == 0)
            {
                ConsolePrintHelpers.PressAnyKeyToExit();
            }
            else
            {
                _EncodingQueues.PrintAndEmptySkippedQueue();
            }
        }