public void ThrowOnDuplicateId()
        {
            var job = new ParallelJob(new ConsoleLogProvider())
                      .AddTask("a", () => { });

            TestUtility.ShouldFail <InvalidOperationException>(() => job.AddTask("a", () => { }), "has already been added");
        }
Example #2
0
        private ParallelJob PrepareGeneratorsJob(IList <IGenerator> generators)
        {
            var allDependencies   = ResolveDependencies(generators);
            var validDependencies = FilterInvalidDependencies(generators, allDependencies);

            var job = new ParallelJob(_logProvider);

            foreach (var generator in generators)
            {
                var generatorName = GetGeneratorName(generator);
                validDependencies.TryGetValue(generatorName, out var generatorDependencies);

                job.AddTask(generatorName, () =>
                {
                    _logger.Info(() => $"Starting {generatorName}.");
                    var sw = Stopwatch.StartNew();
                    generator.Generate();
                    _performanceLogger.Write(sw, () => $"{generatorName} completed.");
                }, generatorDependencies ?? new List <string>());
            }

            return(job);
        }