Ejemplo n.º 1
0
        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 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();
        }
        private void AssignCycle()
        {
            string loadSheetFileName = Path.GetFileNameWithoutExtension(_AODLoadSheetFilePath);

            _Cycle = Regex.Match(loadSheetFileName, @"\d{4}$").ToString();  //Grab cycle digits at end of AOD Loadsheet filename

            if (!loadSheetFileName.EndsWith(_Cycle) || !CycleValidator.Validate4DigitCycle(_Cycle))
            {
                ConsolePrintHelpers.PrintRedText("\n  ERROR: Invalid Loadsheet cycle number at end of filename:  " + _Cycle);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }
        }
Ejemplo n.º 4
0
        private void ValidateLoadSheet()
        {
            ConsolePrintHelpers.PrintWhiteText("  Path:  ");

            if (File.Exists(_Config.AODLoadSheetFilePath))
            {
                ConsolePrintHelpers.PrintGreenText(_Config.AODLoadSheetFilePath + "\n\n");
            }
            else
            {
                ConsolePrintHelpers.PrintRedText(_Config.AODLoadSheetFilePath);
                ConsolePrintHelpers.PrintWhiteText("   ERROR: Missing Loadsheet at this path");
                ConsolePrintHelpers.PressAnyKeyToExit();
            }
        }
        private void AssignLoadSheet()
        {
            _AODLoadSheetFilePath = @"None";

            DirectoryInfo di = new DirectoryInfo(_AODLoadSheetDirectoryPath);

            IEnumerable <FileInfo> finfo = di.GetFiles("*.xlsx");

            if (finfo.Count() > 2)
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  More Than 1 AOD Loadsheet Found In Directory:  ");
                ConsolePrintHelpers.PrintWhiteText(_AODLoadSheetDirectoryPath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }
            else if (finfo.Count() == 2)  //Might have a hidden temporary file "~$file.xlsx"
            {
                bool foundTempFile = false;

                foreach (FileInfo fi in finfo)
                {
                    if (fi.Name.Contains(@"~$"))
                    {
                        foundTempFile = true;
                    }
                    else
                    {
                        _AODLoadSheetFilePath = fi.FullName;
                    }
                }

                if (!foundTempFile)
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  More Than 1 AOD Loadsheet Found In Directory:  ");
                    ConsolePrintHelpers.PrintWhiteText(_AODLoadSheetDirectoryPath);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }
            }
            else if (finfo.Count() == 0)
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing AOD Loadsheet In Directory:  ");
                ConsolePrintHelpers.PrintWhiteText(_AODLoadSheetDirectoryPath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }
            else //only 1 .xlsx file found
            {
                _AODLoadSheetFilePath = finfo.First().FullName;
            }
        }
        public void AssignSuggestedAudioFileFromManualApproval(AudioFileOption bestOption)
        {
            if (_SearchCollection != null)
            {
                _SearchCollection.AssignBestOptionFromManualOptions(bestOption);

                AssignSuggestedAudioFile();

                _IsApproved = true;

                _SuggestedAudioFile.AccuracyNote = Globals.WasApprovedNote;
            }
            else
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Trying To Assign Suggested Audio File With Null Search Collection at LSR #:  ");
                ConsolePrintHelpers.PrintWhiteText((_LoadSheetRowNumber + 1).ToString());
                ConsolePrintHelpers.PressAnyKeyToExit();
            }
        }
Ejemplo n.º 7
0
        private IWorkbook ReadWorkBook()
        {
            if (!File.Exists(_Config.AODLoadSheetFilePath))
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing AOD Loadsheet:  ");
                ConsolePrintHelpers.PrintWhiteText(_Config.AODLoadSheetFilePath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            IWorkbook workbook;

            using (FileStream fsRead = new FileStream(_Config.AODLoadSheetFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                workbook = WorkbookFactory.Create(fsRead);

                fsRead.Close();
            }

            return(workbook);
        }
        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");
        }
        public void AssignSuggestedAudioFile()
        {
            if (_SearchCollection != null)
            {
                _SuggestedAudioFile = _SearchCollection.GetSuggestedAudioFile();

                if (_SuggestedAudioFile == null)  //should never be the case, and if so, something is wrong
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Unassigned Suggested Audio File at LSR #:  ");
                    ConsolePrintHelpers.PrintWhiteText((_LoadSheetRowNumber + 1).ToString());
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                _PotentialFile = new AlreadyEncodedFile(this, false);  //Non-validated AlreadyEncodedFile (Used For Faster Queue Building)

                _IsSuggestedAudioFileAssigned = true;
            }
            else
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Trying To Assign Suggested Audio File With Null Search Collection at LSR #:  ");
                ConsolePrintHelpers.PrintWhiteText((_LoadSheetRowNumber + 1).ToString());
                ConsolePrintHelpers.PressAnyKeyToExit();
            }
        }
        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");
        }
        private void PerformValidation()
        {
            if (!Directory.Exists(_ManualShortcutsDirectory))
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing Manual Shortcuts Directory:  ");
                ConsolePrintHelpers.PrintWhiteText(_ManualShortcutsDirectory);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            if (!Directory.Exists(_AODLoadSheetDirectoryPath))
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing AOD Loadsheet Directory:  ");
                ConsolePrintHelpers.PrintWhiteText(_AODLoadSheetDirectoryPath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            if (!Directory.Exists(_AODLoadSheetBackupPath))
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing AOD Loadsheet Backup Directory:  ");
                ConsolePrintHelpers.PrintWhiteText(_AODLoadSheetBackupPath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            if (!Directory.Exists(_HistoryDatabaseDirectory))
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing History Directory:  ");
                ConsolePrintHelpers.PrintWhiteText(_HistoryDatabaseDirectory);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            if (_ApprovalHistoryFilePath.Length >= Globals.MaxPathLenth)
            {
                ConsolePrintHelpers.PrintRedText(@"\n\n  ERROR  Approvals History File Path > MaxPathLength:  ");
                ConsolePrintHelpers.PrintWhiteText(_ApprovalHistoryFilePath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            if (_EncodingHistoryFilePath.Length >= Globals.MaxPathLenth)
            {
                ConsolePrintHelpers.PrintRedText(@"\n\n  ERROR  Encoding History File Path > MaxPathLength:  ");
                ConsolePrintHelpers.PrintWhiteText(_EncodingHistoryFilePath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            if (!Globals.IsDevelopmentEnvironment) //Don't check for these on development box
            {
                if (!Directory.Exists(_HistoryFilesArchiveDirectory))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing Already Encoded Files History Archive Directory:  ");
                    ConsolePrintHelpers.PrintWhiteText(_HistoryFilesArchiveDirectory);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                if (!File.Exists(_FFMPEG_Executable))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing FFMPEG Executable:  ");
                    ConsolePrintHelpers.PrintWhiteText(_FFMPEG_Executable);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                if (!File.Exists(_FFPROBE_Executable))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing FFPROBE Executable:  ");
                    ConsolePrintHelpers.PrintWhiteText(_FFPROBE_Executable);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                if (!File.Exists(_Manzanita_Executable))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing Manzanita Executable:  ");
                    ConsolePrintHelpers.PrintWhiteText(_Manzanita_Executable);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                if (!File.Exists(_PowerShellScriptPath))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing PowerShell Script:  ");
                    ConsolePrintHelpers.PrintWhiteText(_PowerShellScriptPath);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                if (!File.Exists(_PowerShellCSVPath))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing PowerShell CSV:  ");
                    ConsolePrintHelpers.PrintWhiteText(_PowerShellCSVPath);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                if (!Directory.Exists(_DestinationRootDirectory))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing FFMPEG_WRITE Directory:  ");
                    ConsolePrintHelpers.PrintWhiteText(_DestinationRootDirectory);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }

                if (!Directory.Exists(_TranscodeTempDirectory))
                {
                    ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing TRANSCODE_TEMP Directory:  ");
                    ConsolePrintHelpers.PrintWhiteText(_TranscodeTempDirectory);
                    ConsolePrintHelpers.PressAnyKeyToExit();
                }
            }
        }
        private void ApplyJSONConfigFile(string jsonConfigFilePath)
        {
            if (!File.Exists(jsonConfigFilePath))
            {
                ConsolePrintHelpers.PrintRedText("\n\n  ERROR  Missing JSON Configuration File:  ");
                ConsolePrintHelpers.PrintWhiteText(jsonConfigFilePath);
                ConsolePrintHelpers.PressAnyKeyToExit();
            }

            string jsonConfigFile = File.ReadAllText(jsonConfigFilePath);

            dynamic jsonConfigOBJ = JObject.Parse(jsonConfigFile);

            Globals.ApplyJSONConfigFile(jsonConfigOBJ);  //Configure Globals values

            _AODLoadSheetWorkSheetName = (string)jsonConfigOBJ.aodLoadSheetWorkSheetName;

            _AODLoadSheetDirectoryPath = (string)jsonConfigOBJ.aodLoadSheetDirectoryPath;
            _AODLoadSheetBackupPath    = (string)jsonConfigOBJ.aodLoadSheetBackupPath;

            _ManualShortcutsDirectory = (string)jsonConfigOBJ.manualShortcutsDirectory;

            _FFMPEG_Executable    = (string)jsonConfigOBJ.ffmpeg_Executable;
            _FFPROBE_Executable   = (string)jsonConfigOBJ.ffprobe_Executable;
            _Manzanita_Executable = (string)jsonConfigOBJ.manzanita_Executable;

            _PowerShellScriptPath = (string)jsonConfigOBJ.powerShellScriptPath;
            _PowerShellCSVPath    = (string)jsonConfigOBJ.powerShellCSVPath;

            _HistoryDatabaseDirectory     = (string)jsonConfigOBJ.historyDatabaseDirectory;
            _ApprovalHistoryFilePath      = (string)jsonConfigOBJ.approvalHistoryFilePath;
            _EncodingHistoryFilePath      = (string)jsonConfigOBJ.encodingHistoryFilePath;
            _HistoryFilesArchiveDirectory = (string)jsonConfigOBJ.historyFilesArchiveDirectory;

            _DestinationRootDirectory = (string)jsonConfigOBJ.destinationRootDirectory;
            _TranscodeTempDirectory   = (string)jsonConfigOBJ.transcodeTempDirectory;

            _AudioLibraryRoot = (string)jsonConfigOBJ.audioLibraryRoot;

            string[] productionAudioLibraryRootPaths = Globals.ConvertJSONArray_STR(jsonConfigOBJ.productionAudioLibraryRootPaths);

            if (Globals.IsDevelopmentEnvironment)
            {
                _AudioLibraryRootPaths.Add(@"\\10.7.22.11\CD_Repository\AOD CDs");
                _AudioLibraryRootPaths.Add(@"\\10.7.22.11\Audio_Technical\Audio Programming");
            }
            else
            {
                foreach (string path in productionAudioLibraryRootPaths)
                {
                    _AudioLibraryRootPaths.Add(path);
                }
            }

            _AirlineColumn                    = (int)jsonConfigOBJ.columnConfig.airlineColumn;
            _AltCycleColumn                   = (int)jsonConfigOBJ.columnConfig.altCycleColumn;
            _ArtistColumn                     = (int)jsonConfigOBJ.columnConfig.artistColumn;
            _AlbumColumn                      = (int)jsonConfigOBJ.columnConfig.albumColumn;
            _TrackNumberColumn                = (int)jsonConfigOBJ.columnConfig.trackNumberColumn;
            _TrackColumn                      = (int)jsonConfigOBJ.columnConfig.trackColumn;
            _OutputFileNameColumn             = (int)jsonConfigOBJ.columnConfig.outputFileNameColumn;
            _AudioTypeColumn                  = (int)jsonConfigOBJ.columnConfig.audioTypeColumn;
            _ShipToColumn                     = (int)jsonConfigOBJ.columnConfig.shipToColumn;
            _SourceAudioFilePathColumn        = (int)jsonConfigOBJ.columnConfig.sourceAudioFilePathColumn;
            _AccuracyScoreColumn              = (int)jsonConfigOBJ.columnConfig.accuracyScoreColumn;
            _AccuracyNoteColumn               = (int)jsonConfigOBJ.columnConfig.accuracyNoteColumn;
            _EncodedStatusColumn              = (int)jsonConfigOBJ.columnConfig.encodedStatusColumn;
            _EncodedFilePathColumn            = (int)jsonConfigOBJ.columnConfig.encodedFilePathColumn;
            _EncodedFileDurationPrettyColumn  = (int)jsonConfigOBJ.columnConfig.encodedFileDurationPrettyColumn;
            _EncodedFileDurationSecondsColumn = (int)jsonConfigOBJ.columnConfig.encodedFileDurationSecondsColumn;

            _AODLoadSheetColumnNumsRead = new int[] { _AirlineColumn,
                                                      _AltCycleColumn,
                                                      _ArtistColumn,
                                                      _AlbumColumn,
                                                      _TrackNumberColumn,
                                                      _TrackColumn,
                                                      _OutputFileNameColumn,
                                                      _AudioTypeColumn,
                                                      _ShipToColumn,
                                                      _EncodedStatusColumn };

            _AODLoadSheetColumnNumsWrite = new int[] { _SourceAudioFilePathColumn,
                                                       _AccuracyScoreColumn,
                                                       _AccuracyNoteColumn,
                                                       _EncodedStatusColumn,
                                                       _EncodedFilePathColumn,
                                                       _EncodedFileDurationPrettyColumn,
                                                       _EncodedFileDurationSecondsColumn };

            _AODLoadSheetOptionalColumnNumsRead = new int[] { _AltCycleColumn, _EncodedStatusColumn };
        }
        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();
        }
        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();
        }
Ejemplo n.º 15
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();
        }
Ejemplo n.º 16
0
        public void ScanAudioLibrary()
        {
            Stopwatch stopwatch = ConsolePrintHelpers.PrintHeaderAndStartStopWatch();

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

            int rootDirectoryPrintCount = 1;

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

                rootDirectoryPrintCount++;

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

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

                    Console.WriteLine("\n");

                    rootDirectory.ScanRootDirectoryPath();

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

            int cursorTop = Console.CursorTop - 3;

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

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

            bool keepWaiting = true;

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

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

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

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

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

                        break;
                    }

                    Thread.Sleep(Globals.ProgressTickerDelayMilliseconds);
                }
            }

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

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

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

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

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

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

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

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

            GC.Collect();
        }