Example #1
0
        private void ScanLogs(string mineLocation, IDataMiner dataMiner)
        {
            DirectoryInfo info = new DirectoryInfo();

            Log.To.Main.Add($"Log location found => {mineLocation}");
            _localDirCounter++;
            var files = info.EnumerateLogFiles(mineLocation, _settings.StartDateForLogs, _settings.StopDateForLogs);

            foreach (IFileInfo file in files)
            {
                if (!(file.Name.IndexOf(dataMiner.MinerName, StringComparison.InvariantCultureIgnoreCase) > 0))
                {
                    continue;
                }
                _localFileCounter++;
                file.Refresh(); //some files are returning empty even though they are not. Shown 0 bytes in explorer until opened in notepad.
                //Trace.WriteLine("found=>" + file.FullName);
                Log.To.Main.Add($"{dataMiner.MinerName} miner is reading file {file.FullName}");
                var lines = _fileSystem.ReadLines(file.FullName);

                var lineCounter = 0;
                foreach (var line in lines)
                {
                    lineCounter++;
                    if (lineCounter == 1)
                    {
                        dataMiner.InitializeNewFile(line, _fileMinerData, mineLocation);
                        continue;
                    }

                    dataMiner.Mine(line);
                }
            }
        }