public AnalyseController(
     IGlasswallVersionService glasswallVersionService,
     IFileTypeDetector fileTypeDetector,
     IFileAnalyser fileAnalyser,
     IMetricService metricService,
     ILogger <AnalyseController> logger) : base(logger, metricService)
 {
     _glasswallVersionService = glasswallVersionService ?? throw new ArgumentNullException(nameof(glasswallVersionService));
     _fileTypeDetector        = fileTypeDetector ?? throw new ArgumentNullException(nameof(fileTypeDetector));
     _fileAnalyser            = fileAnalyser ?? throw new ArgumentNullException(nameof(fileAnalyser));
 }
示例#2
0
        public override bool Init(ICollectFilterOptions options)
        {
            _options = options.ConvertTo <FileInputFilterOptions>();

            _watcher  = new DFileSystemWatcher(_loggerFactory.CreateLogger <DFileSystemWatcher>(), _options);
            _analyser = new FileAnalyser(_loggerFactory.CreateLogger <FileAnalyser>(), _options);

            _watcher.SetFileChangeAction((file) =>
            {
                _analyser.Analyse(file);
            });

            _analyser.SetDealContextAction((collectContext) =>
            {
                if (!OutputContext(collectContext))
                {
                    this.Pause();
                }
            });

            return(true);
        }