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);
}
}