예제 #1
0
        protected JobReporterBase(
            [NotNull] IExtractJobStore jobStore,
            ReportFormat reportFormat,
            [CanBeNull] string reportNewLine
            )
        {
            Logger       = LogManager.GetLogger(GetType().Name);
            _jobStore    = jobStore ?? throw new ArgumentNullException(nameof(jobStore));
            ReportFormat = (reportFormat == default) ? throw new ArgumentException(nameof(reportFormat)) : reportFormat;

            // NOTE(rkm 2020-11-20) IsNullOrWhiteSpace returns true for newline characters!
            if (!string.IsNullOrEmpty(reportNewLine))
            {
                ReportNewLine = reportNewLine;
            }
            else
            {
                Logger.Warn($"Not passed a specific newline string for creating reports. Defaulting to Environment.NewLine ('{Regex.Escape(Environment.NewLine)}')");
                ReportNewLine = Regex.Escape(Environment.NewLine);
            }

            _csvConfiguration = new CsvConfiguration(CultureInfo.InvariantCulture)
            {
                NewLine = ReportNewLine,
            };
        }
예제 #2
0
        public static IJobReporter GetReporter([NotNull] string reporterTypeStr,
                                               [NotNull] IExtractJobStore jobStore,
                                               [NotNull] IFileSystem fileSystem,
                                               [NotNull] string extractRoot,
                                               [NotNull] string reportFormatStr,
                                               [CanBeNull] string reportNewLine,
                                               bool createJobIdFile = true
                                               )
        {
            if (!Enum.TryParse(reportFormatStr, ignoreCase: true, out ReportFormat reportFormat))
            {
                throw new ArgumentException($"Could not parse reportFormatStr to a valid ReportFormat. Got '{reportFormatStr}'");
            }

            return(reporterTypeStr switch
            {
                nameof(FileReporter) => new FileReporter(
                    jobStore,
                    fileSystem,
                    extractRoot,
                    reportFormat,
                    reportNewLine,
                    createJobIdFile
                    ),
                nameof(LoggingReporter) => new LoggingReporter(
                    jobStore,
                    reportFormat,
                    reportNewLine
                    ),
                _ => throw new ArgumentException($"No case for type, or invalid type string '{reporterTypeStr}'")
            });
예제 #3
0
 public TestJobReporter(
     IExtractJobStore jobStore,
     ReportFormat reportFormat,
     string reportNewLine
     )
     : base(
         jobStore,
         reportFormat,
         reportNewLine
         )
 {
 }
예제 #4
0
 public LoggingReporter(
     [NotNull] IExtractJobStore jobStore,
     ReportFormat reportFormat,
     [CanBeNull] string reportNewLine
     )
     : base(
         jobStore,
         reportFormat,
         reportNewLine
         )
 {
     _logger = LogManager.GetCurrentClassLogger();
 }
예제 #5
0
        public ExtractJobWatcher(
            CohortPackagerOptions options,
            IExtractJobStore jobStore,
            Action <Exception> exceptionCallback,
            [NotNull] IJobCompleteNotifier jobCompleteNotifier,
            [NotNull] IJobReporter reporter)
        {
            _jobStore          = jobStore;
            _exceptionCallback = exceptionCallback;

            _reporter = reporter;
            _notifier = jobCompleteNotifier;

            _processTimer          = new SysTimers.Timer(TimeSpan.FromSeconds(options.JobWatcherTimeoutInSeconds).TotalMilliseconds);
            _processTimer.Elapsed += TimerElapsedEvent;
        }
예제 #6
0
 public FileReporter(
     [NotNull] IExtractJobStore jobStore,
     [NotNull] IFileSystem fileSystem,
     [NotNull] string extractRoot,
     ReportFormat reportFormat,
     [CanBeNull] string reportNewLine,
     bool createJobIdFile = true
     )
     : base(
         jobStore,
         reportFormat,
         reportNewLine
         )
 {
     _fileSystem      = fileSystem;
     _extractRoot     = extractRoot ?? throw new ArgumentNullException(nameof(extractRoot));
     _createJobIdFile = createJobIdFile;
 }
예제 #7
0
 public ExtractionRequestInfoMessageConsumer(IExtractJobStore store)
 {
     _store = store;
 }
예제 #8
0
 public AnonVerificationMessageConsumer(IExtractJobStore store)
 {
     _store = store;
 }
예제 #9
0
 public ExtractFileCollectionMessageConsumer(IExtractJobStore store)
 {
     _store = store;
 }
예제 #10
0
 public AnonFailedMessageConsumer(IExtractJobStore store)
 {
     _store = store;
 }