Esempio n. 1
0
        public static Options ToRuntimeOptions(
            this CrystalQuartzOptions options,
            IDictionary <int, Func <ISchedulerEngine> > schedulerEngineResolvers,
            string frameworkVersion)
        {
            ErrorDetectionOptions errorDetectionOptions = options.ErrorDetectionOptions ?? new ErrorDetectionOptions();
            ErrorExtractionSource errorExtractionSource = errorDetectionOptions.Source;

            var extractErrorsFromJobResults = (errorExtractionSource & ErrorExtractionSource.JobResult) == ErrorExtractionSource.JobResult;

            IJobResultAnalyser jobResultAnalyser = null;

            if (extractErrorsFromJobResults)
            {
                jobResultAnalyser = CreateJobResultAnalyzer(options.JobResultAnalyserOptions ?? new DictionaryJobResultAnalyzerOptions());
            }

            return(new Options(
                       options.TimelineSpan,
                       schedulerEngineResolvers,
                       options.LazyInit,
                       options.CustomCssUrl,
                       frameworkVersion,
                       (options.JobDataMapDisplayOptions ?? new JobDataMapDisplayOptions()).ToTraversingOptions(),
                       (errorExtractionSource & ErrorExtractionSource.UnhandledExceptions) == ErrorExtractionSource.UnhandledExceptions,
                       extractErrorsFromJobResults,
                       CreateExceptionTransformer(errorDetectionOptions),
                       jobResultAnalyser,
                       options.JobDataMapInputTypes,
                       options.AllowedJobTypes ?? new Type[0]));
        }
Esempio n. 2
0
        private static IExceptionTransformer CreateExceptionTransformer(ErrorDetectionOptions options)
        {
            switch (options.VerbosityLevel)
            {
            case ErrorVerbosityLevel.None:
                return(new NoopExceptionTransformer());

            case ErrorVerbosityLevel.Minimal:
                return(new MinimalExceptionTransformer(options.ExceptionMessageLengthLimit));

            case ErrorVerbosityLevel.Detailed:
                return(new DetailedExceptionTransformer());

            default:
                throw new ArgumentOutOfRangeException();
            }
        }