SIPSorcery.Servers.RateBulkUpdater.MonitorBulkRatesDirectory C# (CSharp) Method

MonitorBulkRatesDirectory() private method

private MonitorBulkRatesDirectory ( ) : void
return void
        private void MonitorBulkRatesDirectory()
        {
            try
            {
                Thread.CurrentThread.Name = "bulkrate";

                if (!Directory.Exists(_monitorDirectory))
                {
                    logger.Error("The bulk rates directory does not exist " + _monitorDirectory + ".");
                }
                else
                {
                    logger.Debug("Starting monitor of bulk rates directory " + _monitorDirectory + ".");

                    while (!m_exit)
                    {
                        var newFile = Directory.GetFiles(_monitorDirectory).FirstOrDefault();

                        while (newFile != null)
                        {
                            FileInfo newFileInfo = new FileInfo(newFile);

                            if (!m_newFiles.ContainsKey(newFile))
                            {
                                logger.Warn("First appearance of " + newFile + " recording length " + newFileInfo.Length + ".");
                                m_newFiles.Add(newFile, newFileInfo.Length);
                            }
                            else
                            {
                                if (m_newFiles[newFile] >= newFileInfo.Length)
                                {
                                    m_newFiles.Remove(newFile);
                                    ProcessBulkRateFile(newFile);
                                }
                                else
                                {
                                    logger.Warn("The length of " + newFile + " is larger than the last check, previously " + m_newFiles[newFile] + " now " + newFileInfo.Length + ".");
                                    m_newFiles[newFile] = newFileInfo.Length;
                                }
                            }

                            Thread.Sleep(CHECK_FOR_FILE_INTERVAL);

                            newFile = Directory.GetFiles(_monitorDirectory).FirstOrDefault();
                        }

                        Thread.Sleep(CHECK_FOR_FILE_INTERVAL);
                    }
                }

                logger.Debug("Monitor bulk rates directory thread stopping.");
            }
            catch (Exception excp)
            {
                logger.Error("Exception MonitorBulkRatesDirectory. " + excp);
            }
        }