コード例 #1
0
        private static void CheckMemory(Process process, IPipelineLogger logger)
        {
            if (string.IsNullOrEmpty(process.MaxMemory))
            {
                return;
            }

            var context = new PipelineContext(logger, process);

            GC.Collect();
            GC.WaitForPendingFinalizers();

            var currentBytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64.Bytes();
            var maxMemory    = ByteSize.Parse(process.MaxMemory);

            if (maxMemory.CompareTo(currentBytes) < 0)
            {
                context.Error(
                    $"Process exceeded {maxMemory.Megabytes.ToString("#.0")} Mb. Current memory is {currentBytes.Megabytes.ToString("#.0")} Mb!");
                Environment.Exit(1);
            }
            else
            {
                context.Info(
                    $"The process is using {currentBytes.Megabytes.ToString("#.0")} Mb of it's max {maxMemory.Megabytes.ToString("#.0")} Mb allowed.");
            }
        }
コード例 #2
0
 public PipelineContext(
     IPipelineLogger logger,
     Process process     = null,
     Entity entity       = null,
     Field field         = null,
     Transform transform = null
     )
 {
     ForLog  = new object[4];
     Logger  = logger;
     Process = process ?? new Process {
         Name = "Process"
     }.WithDefaults();
     Entity = entity ?? new Entity {
         Name = string.Empty, Alias = string.Empty
     }.WithDefaults();
     Field = field ?? new Field {
         Name = string.Empty, Alias = string.Empty
     }.WithDefaults();
     Transform = transform ?? new Transform {
         Method = string.Empty
     }.WithDefaults();
     Key       = Process.Name + Entity.Key + Field.Alias + Transform.Method + Transform.Index;
     ForLog[0] = Process.Name.PadRight(Process.LogLimit, ' ').Left(Process.LogLimit);
     ForLog[1] = Entity.Alias.PadRight(Process.EntityLogLimit, ' ').Left(Process.EntityLogLimit);
     ForLog[2] = Field.Alias.PadRight(Process.FieldLogLimit, ' ').Left(Process.FieldLogLimit);
     ForLog[3] = Transform.Method.PadRight(Process.TransformLogLimit, ' ').Left(Process.TransformLogLimit);
 }
コード例 #3
0
        public static ILifetimeScope Create(Process process, IPipelineLogger logger)
        {
            if (process.OutputIsConsole())
            {
                logger.SuppressConsole();
            }

            var builder = new ContainerBuilder();

            builder.RegisterInstance(logger).As <IPipelineLogger>().SingleInstance();
            builder.RegisterCallback(new RootModule().Configure);
            builder.RegisterCallback(new ContextModule(process).Configure);

            // providers
            builder.RegisterCallback(new AdoModule(process).Configure);
            builder.RegisterCallback(new InternalModule(process).Configure);
            builder.RegisterCallback(new FileModule(process).Configure);
            builder.RegisterCallback(new ExcelModule(process).Configure);

            builder.RegisterCallback(new EntityPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessControlModule(process).Configure);

            return(builder.Build().BeginLifetimeScope());
        }
コード例 #4
0
 public TransformModule(Process process, HashSet <string> methods, ShorthandRoot shortHand, IPipelineLogger logger)
 {
     _process   = process;
     _logger    = logger;
     _methods   = methods;
     _shortHand = shortHand;
 }
コード例 #5
0
 public TransformModule(Process process, IPipelineLogger logger)
 {
     _process   = process;
     _logger    = logger;
     _methods   = new HashSet <string>();
     _shortHand = new ShorthandRoot();
 }
コード例 #6
0
 public BaseExecutor(IPipelineLogger logger, string cfg, string mode, bool checkMemory)
 {
     _logger      = logger;
     _checkMemory = checkMemory;
     Cfg          = cfg;
     Mode         = mode;
 }
コード例 #7
0
 public PipelineContext(
     IPipelineLogger logger,
     Process process     = null,
     Entity entity       = null,
     Field field         = null,
     Operation operation = null
     )
 {
     ForLog  = new object[4];
     Logger  = logger;
     Process = process ?? new Process {
         Name = "Process"
     };
     Entity = entity ?? new Entity {
         Name = string.Empty, Alias = string.Empty
     };
     Field = field ?? new Field {
         Name = string.Empty, Alias = string.Empty
     };
     Operation = operation ?? new Operation {
         Method = string.Empty
     };
     Key       = Process.Name + Entity.Key + Field.Alias + Operation.Method + Operation.Index;
     ForLog[0] = Process.Name.PadRight(Process.LogLimit, ' ').Left(Process.LogLimit);
     ForLog[1] = Entity.Alias.PadRight(Process.EntityLogLimit, ' ').Left(Process.EntityLogLimit);
     ForLog[2] = Field.Alias.PadRight(Process.FieldLogLimit, ' ').Left(Process.FieldLogLimit);
     ForLog[3] = Operation.Method.PadRight(Process.TransformLogLimit, ' ').Left(Process.TransformLogLimit);
 }
コード例 #8
0
 public ValidateBuilder(Process process, ContainerBuilder builder, IPipelineLogger logger)
 {
     _process    = process;
     _logger     = logger;
     _methods    = new HashSet <string>();
     _shortHand  = new ShorthandRoot();
     _builder    = builder;
     _validators = new List <ValidatorHolder>();
 }
コード例 #9
0
 public TransformBuilder(Process process, ContainerBuilder builder, IPipelineLogger logger)
 {
     _process    = process;
     _builder    = builder;
     _logger     = logger;
     _methods    = new HashSet <string>();
     _shortHand  = new ShorthandRoot();
     _transforms = new List <TransformHolder>();
 }
コード例 #10
0
        public Bootstrapper(IPipelineLogger logger = null)
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule(new JunkModule(logger));
            builder.RegisterModule(new ImportModule());
            builder.RegisterModule(new PageModule());
            _scope = builder.Build().BeginLifetimeScope();
        }
コード例 #11
0
 public TransformBuilder(Process process, ContainerBuilder builder, HashSet <string> methods, ShorthandRoot shortHand, List <TransformHolder> transforms, IPipelineLogger logger)
 {
     _process    = process;
     _builder    = builder;
     _logger     = logger;
     _methods    = methods;
     _shortHand  = shortHand;
     _transforms = transforms;
 }
コード例 #12
0
 public ValidateBuilder(Process process, ContainerBuilder builder, HashSet <string> methods, ShorthandRoot shortHand, List <ValidatorHolder> validators, IPipelineLogger logger)
 {
     _process    = process;
     _logger     = logger;
     _methods    = methods;
     _shortHand  = shortHand;
     _builder    = builder;
     _validators = validators;
 }
コード例 #13
0
 public RunTimeDataReader(
     IPipelineLogger logger,
     IAppDataFolder appDataFolder,
     ITemplateProcessor templateProcessor,
     INotifier notifier)
 {
     _logger            = logger;
     _appDataFolder     = appDataFolder;
     _templateProcessor = templateProcessor;
     _notifier          = notifier;
 }
コード例 #14
0
        public static ILifetimeScope Create(Process process, IPipelineLogger logger, string placeHolderStyle)
        {
            if (process.OutputIsConsole())
            {
                logger.SuppressConsole();
            }

            var builder = new ContainerBuilder();

            builder.Register(ctx => placeHolderStyle).Named <string>("placeHolderStyle");
            builder.RegisterInstance(logger).As <IPipelineLogger>().SingleInstance();
            builder.RegisterCallback(new TransformModule().Configure);
            builder.RegisterCallback(new ShorthandTransformModule().Configure);
            builder.RegisterCallback(new ValidateModule().Configure);
            builder.RegisterCallback(new ShorthandValidateModule().Configure);
            builder.RegisterCallback(new RootModule().Configure);
            builder.RegisterCallback(new ContextModule(process).Configure);

            // providers
            builder.RegisterCallback(new AdoModule(process).Configure);
            builder.RegisterCallback(new LuceneModule(process).Configure);
            builder.RegisterCallback(new SolrModule(process).Configure);
            builder.RegisterCallback(new ElasticModule(process).Configure);
            builder.RegisterCallback(new InternalModule(process).Configure);
            builder.RegisterCallback(new ConsoleModule(process).Configure);
            builder.RegisterCallback(new FileModule(process).Configure);
            builder.RegisterCallback(new GeoJsonModule(process).Configure);
            builder.RegisterCallback(new KmlModule(process).Configure);
            builder.RegisterCallback(new FolderModule(process).Configure);
            builder.RegisterCallback(new DirectoryModule(process).Configure);
            builder.RegisterCallback(new ExcelModule(process).Configure);
            builder.RegisterCallback(new WebModule(process).Configure);
            builder.RegisterCallback(new SSASModule(process).Configure);
            builder.RegisterCallback(new RethinkDBModule(process).Configure);

            // template providers
            builder.RegisterCallback(new WordModule(process).Configure);
            builder.RegisterCallback(new RazorModule(process).Configure);

            // etc
            builder.RegisterCallback(new MapModule(process).Configure);
            builder.RegisterCallback(new TemplateModule(process).Configure);
            builder.RegisterCallback(new ActionModule(process).Configure);

            builder.RegisterCallback(new EntityPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessControlModule(process).Configure);

            return(builder.Build().BeginLifetimeScope());
        }
コード例 #15
0
        public static ILifetimeScope Create(string cfg, IPipelineLogger logger, Dictionary <string, string> parameters = null, string placeHolderStyle = "@()")
        {
            var builder = new ContainerBuilder();

            builder.Register(c => logger).As <IPipelineLogger>();
            builder.Register(c => placeHolderStyle).Named <string>("placeHolderStyle");
            builder.RegisterModule(new TransformModule(new Process {
                Name = "ConfigurationContainer"
            }, logger));
            builder.RegisterModule(new ShorthandTransformModule());
            builder.RegisterModule(new ValidateModule());
            builder.RegisterModule(new ShorthandValidateModule());
            builder.RegisterModule(new RootModule());
            return(builder.Build());
        }
コード例 #16
0
        public static ILifetimeScope Create(string cfg, IPipelineLogger logger, Dictionary <string, string> parameters = null, string placeHolderStyle = "@()")
        {
            var builder = new ContainerBuilder();

            builder.Register(c => cfg).Named <string>(Cfg);
            builder.Register(c => logger).As <IPipelineLogger>();
            builder.Register(c => placeHolderStyle).Named <string>("placeHolderStyle");

            // these are called here to register short-hand (t and v attributes)
            builder.RegisterModule(new TransformModule(new Process {
                Name = Cfg
            }, logger));
            builder.RegisterModule(new ValidateModule(new Process {
                Name = Cfg
            }, logger));

            builder.RegisterModule(new RootModule());
            return(builder.Build());
        }
コード例 #17
0
 public PipelineContext(
     IPipelineLogger logger,
     Process process,
     Entity entity = null,
     Field field = null,
     Transform transform = null
 ) {
     ForLog = new object[5];
     Logger = logger;
     Activity = PipelineActivity.Transform;
     Process = process;
     Entity = entity ?? process.GetValidatedOf<Entity>(e => { e.Name = string.Empty; });
     Field = field ?? process.GetValidatedOf<Field>(f => { f.Name = string.Empty; });
     Transform = transform ?? process.GetDefaultOf<Transform>(t => { t.Method = string.Empty; });
     ForLog[0] = process.Name.PadRight(process.LogLimit, ' ').Left(process.LogLimit);
     ForLog[1] = Entity.Alias.PadRight(process.EntityLogLimit, ' ').Left(process.EntityLogLimit);
     ForLog[2] = ' ';
     ForLog[3] = Field.Alias.PadRight(process.FieldLogLimit, ' ').Left(process.FieldLogLimit);
     ForLog[4] = Transform.Method.PadRight(process.TransformLogLimit, ' ').Left(process.TransformLogLimit);
 }
コード例 #18
0
 public PipelineContext(
     IPipelineLogger logger,
     Process process,
     Entity entity       = null,
     Field field         = null,
     Transform transform = null
     )
 {
     ForLog    = new object[5];
     Logger    = logger;
     Activity  = PipelineActivity.Transform;
     Process   = process;
     Entity    = entity ?? process.GetValidatedOf <Entity>(e => { e.Name = string.Empty; });
     Field     = field ?? process.GetValidatedOf <Field>(f => { f.Name = string.Empty; });
     Transform = transform ?? process.GetDefaultOf <Transform>(t => { t.Method = string.Empty; });
     ForLog[0] = process.Name.PadRight(process.LogLimit, ' ').Left(process.LogLimit);
     ForLog[1] = Entity.Alias.PadRight(process.EntityLogLimit, ' ').Left(process.EntityLogLimit);
     ForLog[2] = ' ';
     ForLog[3] = Field.Alias.PadRight(process.FieldLogLimit, ' ').Left(process.FieldLogLimit);
     ForLog[4] = Transform.Method.PadRight(process.TransformLogLimit, ' ').Left(process.TransformLogLimit);
 }
コード例 #19
0
        public static ILifetimeScope Create(Process process, IPipelineLogger logger)
        {
            if (process.OutputIsConsole())
            {
                logger.SuppressConsole();
            }

            var builder = new ContainerBuilder();

            builder.RegisterInstance(logger).As <IPipelineLogger>().SingleInstance();
            builder.RegisterCallback(new RootModule(process.Shorthand).Configure);
            builder.RegisterCallback(new ContextModule(process).Configure);

            // providers
            builder.RegisterCallback(new AdoModule(process).Configure);
            builder.RegisterCallback(new LuceneModule(process).Configure);
            builder.RegisterCallback(new SolrModule(process).Configure);
            builder.RegisterCallback(new ElasticModule(process).Configure);
            builder.RegisterCallback(new InternalModule(process).Configure);
            builder.RegisterCallback(new FileModule(process).Configure);
            builder.RegisterCallback(new GeoJsonModule(process).Configure);
            builder.RegisterCallback(new KmlModule(process).Configure);
            builder.RegisterCallback(new FolderModule(process).Configure);
            builder.RegisterCallback(new DirectoryModule(process).Configure);
            builder.RegisterCallback(new ExcelModule(process).Configure);
            builder.RegisterCallback(new WebModule(process).Configure);

            builder.RegisterCallback(new MapModule(process).Configure);
            builder.RegisterCallback(new TemplateModule(process).Configure);
            builder.RegisterCallback(new ActionModule(process).Configure);
            builder.RegisterCallback(new TransformModule(process).Configure);

            builder.RegisterCallback(new EntityPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessControlModule(process).Configure);

            return(builder.Build().BeginLifetimeScope());
        }
コード例 #20
0
        private static void CheckMemory(Process process, IPipelineLogger logger)
        {
            if (string.IsNullOrEmpty(process.MaxMemory))
            {
                return;
            }

            var context = new PipelineContext(logger, process);

            GC.Collect();
            GC.WaitForPendingFinalizers();

            var bytes = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64.Bytes();

            if (bytes.Megabytes > MaxBytes.Megabytes)
            {
                if (MaxBytes.Megabytes > 0.0)
                {
                    context.Warn($"Process memory has increased from {MaxBytes.Megabytes:#.0} to {bytes.Megabytes:#.0}.");
                }
                MaxBytes = bytes;
            }

            var maxMemory = ByteSize.Parse(process.MaxMemory);

            if (maxMemory.CompareTo(bytes) < 0)
            {
                context.Error($"Process exceeded {maxMemory.Megabytes:#.0} Mb. Current memory is {bytes.Megabytes:#.0} Mb!");
                context.Error($"Process is exiting after running {RunCount} time{RunCount.Plural()}.");
                Environment.Exit(1);
            }
            else
            {
                context.Info($"Process is using {bytes.Megabytes:#.0} Mb of it's max {maxMemory.Megabytes:#.0} Mb allowed.");
                context.Info($"Process has run {RunCount} time{RunCount.Plural()}.");
            }
        }
コード例 #21
0
 /// <summary>
 /// Hides the work of creating the context and input for each method
 /// </summary>
 /// <param name="context"></param>
 /// <param name="entity"></param>
 /// <param name="field"></param>
 /// <param name="sb"></param>
 private static void WriteMethods(Process process, Entity entity, Field field, StringBuilder sb, IPipelineLogger logger)
 {
     foreach (var transform in field.Transforms.Where(t => t.Method == "cs" || t.Method == "csharp"))
     {
         var tc    = new PipelineContext(logger, process, entity, field, transform);
         var input = process.ParametersToFields(transform.Parameters, field);
         WriteMethod(tc, input, sb);
     }
 }
コード例 #22
0
 public ShorthandModule(
     IPipelineLogger logger
     )
 {
     _logger = logger;
 }
コード例 #23
0
 public TransformModule(Process process, IPipelineLogger logger)
 {
     _process = process;
     _logger  = logger;
 }
コード例 #24
0
 public JunkModule(Request jr, IPipelineLogger logger = null)
 {
     _jr     = jr;
     _logger = logger;
 }
コード例 #25
0
 public NowScheduler(Options options, ISchemaHelper schemaHelper, IPipelineLogger logger)
 {
     _options      = options;
     _schemaHelper = schemaHelper;
     _logger       = logger;
 }
コード例 #26
0
        public static ILifetimeScope Create(Process process, IPipelineLogger logger, string placeHolderStyle)
        {
            var loadContext = new PipelineContext(logger, process);

            if (process.OutputIsConsole())
            {
                logger.SuppressConsole();
            }

            var builder = new ContainerBuilder();

            builder.Properties["Process"] = process;

            builder.Register(ctx => placeHolderStyle).Named <string>("placeHolderStyle");
            builder.RegisterInstance(logger).As <IPipelineLogger>().SingleInstance();

            /* this stuff is loaded (again) because tfl actions can create processes, which will need short-hand to expand configuration in advance */
            builder.RegisterCallback(new TransformModule(process, logger).Configure);
            builder.RegisterCallback(new ValidateModule(process, logger).Configure);
            builder.RegisterCallback(new RootModule().Configure);
            builder.RegisterCallback(new ContextModule(process).Configure);

            // provider loading section
            var providers = new HashSet <string>(process.Connections.Select(c => c.Provider).Distinct(), StringComparer.OrdinalIgnoreCase);

            builder.RegisterCallback(new InternalModule(process).Configure);
            builder.RegisterCallback(new FileModule(process).Configure);

            if (providers.Contains("console"))
            {
                builder.RegisterCallback(new ConsoleModule(process).Configure);
            }
            if (providers.Contains("kml"))
            {
                builder.RegisterCallback(new KmlModule(process).Configure);
            }
            if (providers.Contains("filesystem"))
            {
                builder.RegisterCallback(new FileSystemModule(process).Configure);
            }

            var pluginsFolder = Path.Combine(AssemblyDirectory, "plugins");

            if (Directory.Exists(pluginsFolder))
            {
                var assemblies = new List <Assembly>();
                var files      = Directory.GetFiles(pluginsFolder, "Transformalize.Provider.*.Autofac.dll", SearchOption.TopDirectoryOnly);
                foreach (var file in files)
                {
                    var info = new FileInfo(file);
                    var name = info.Name.ToLower().Split('.').FirstOrDefault(f => f != "dll" && f != "transformalize" && f != "provider" && f != "autofac");

                    // temporary hack
                    if (name.StartsWith("amazonkinesis"))
                    {
                        name = name.Replace("amazonkinesis", string.Empty);
                    }

                    switch (name)
                    {
                    case "filehelpers" when(providers.Contains("file") || providers.Contains("folder")):
                        loadContext.Debug(() => "Loading filehelpers provider");
                        assemblies.Add(Assembly.LoadFile(new FileInfo(file).FullName));
                        break;

                    case "ado":
                        loadContext.Debug(() => "Loading ADO provider");
                        assemblies.Add(Assembly.LoadFile(new FileInfo(file).FullName));
                        break;

                    default:
                        if (providers.Contains(name))
                        {
                            loadContext.Debug(() => $"Loading {name} provider.");
                            var assembly = Assembly.LoadFile(new FileInfo(file).FullName);
                            assemblies.Add(assembly);
                        }
                        else
                        {
                            loadContext.Debug(() => $"Loading {name} isn't necessary for this arrangement.");
                        }
                        break;
                    }
                }
                if (assemblies.Any())
                {
                    builder.RegisterAssemblyModules(assemblies.ToArray());
                }
            }

            // etc
            builder.RegisterCallback(new EntityPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessPipelineModule(process).Configure);
            builder.RegisterCallback(new ProcessControlModule(process).Configure);

            return(builder.Build().BeginLifetimeScope());
        }
コード例 #27
0
        public ILifetimeScope CreateScope(string cfg, IPipelineLogger logger, IDictionary <string, string> parameters = null, string placeHolderStyle = "@[]")
        {
            if (placeHolderStyle == null || placeHolderStyle.Length != 3)
            {
                throw new ArgumentException("The placeHolderStyle parameter must be three characters (e.g. @[], or @())");
            }

            if (parameters == null)
            {
                parameters = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
            }

            var builder = new ContainerBuilder();

            builder.Register((ctx) => logger).As <IPipelineLogger>();

            builder.Register <IReader>(c => new DefaultReader(new FileReader(), new WebReader())).As <IReader>();

            // register short-hand for t attribute
            var transformModule = new TransformModule(new Process {
                Name = "TransformShorthand"
            }, _methods, _shortHand, logger);

            foreach (var t in _transforms)
            {
                transformModule.AddTransform(t);
            }
            builder.RegisterModule(transformModule);

            // register short-hand for v attribute
            var validateModule = new ValidateModule(new Process {
                Name = "ValidateShorthand"
            }, _methods, _shortHand, logger);

            foreach (var v in _validators)
            {
                validateModule.AddValidator(v);
            }
            builder.RegisterModule(validateModule);

            // register the validator short hand
            builder.Register((c, p) => _shortHand).Named <ShorthandRoot>(ValidateModule.FieldsName).InstancePerLifetimeScope();
            builder.Register((c, p) => new ShorthandCustomizer(c.ResolveNamed <ShorthandRoot>(ValidateModule.FieldsName), new[] { "fields", "calculated-fields", "calculatedfields" }, "v", "validators", "method")).Named <IDependency>(ValidateModule.FieldsName).InstancePerLifetimeScope();

            // register the transform short hand
            builder.Register((c, p) => _shortHand).Named <ShorthandRoot>(TransformModule.FieldsName).InstancePerLifetimeScope();
            builder.Register((c, p) => _shortHand).Named <ShorthandRoot>(TransformModule.ParametersName).InstancePerLifetimeScope();
            builder.Register((c, p) => new ShorthandCustomizer(c.ResolveNamed <ShorthandRoot>(TransformModule.FieldsName), new[] { "fields", "calculated-fields", "calculatedfields" }, "t", "transforms", "method")).Named <IDependency>(TransformModule.FieldsName).InstancePerLifetimeScope();
            builder.Register((c, p) => new ShorthandCustomizer(c.ResolveNamed <ShorthandRoot>(TransformModule.ParametersName), new[] { "parameters" }, "t", "transforms", "method")).Named <IDependency>(TransformModule.ParametersName).InstancePerLifetimeScope();


#if PLUGINS
            // the shorthand registrations are stored in the builder's properties for plugins to add to
            builder.Properties["ShortHand"] = _shortHand;
            builder.Properties["Methods"]   = _methods;
#endif

            foreach (var module in _modules)
            {
                builder.RegisterModule(module);
            }

            builder.Register((c, p) => _methods).Named <HashSet <string> >("Methods").InstancePerLifetimeScope();
            builder.Register((c, p) => _shortHand).As <ShorthandRoot>().InstancePerLifetimeScope();

            builder.Register(ctx => {
                var transformed = TransformParameters(ctx, cfg);

                var dependancies = new List <IDependency>();
                dependancies.Add(ctx.Resolve <IReader>());
                dependancies.AddRange(_dependencies);
                dependancies.Add(new ParameterModifier(new PlaceHolderReplacer(placeHolderStyle[0], placeHolderStyle[1], placeHolderStyle[2]), "parameters", "name", "value"));
                dependancies.Add(ctx.ResolveNamed <IDependency>(TransformModule.FieldsName));
                dependancies.Add(ctx.ResolveNamed <IDependency>(TransformModule.ParametersName));
                dependancies.Add(ctx.ResolveNamed <IDependency>(ValidateModule.FieldsName));

                var process = new Process(transformed ?? cfg, parameters, dependancies.ToArray());

                if (process.Errors().Any())
                {
                    var c = new PipelineContext(logger, new Process()
                    {
                        Name = "Errors"
                    });
                    c.Error("The configuration has errors.");
                    foreach (var error in process.Errors())
                    {
                        c.Error(error);
                    }
                }

                return(process);
            }).As <Process>().InstancePerDependency();
            return(builder.Build().BeginLifetimeScope());
        }
コード例 #28
0
 public JunkModule(IPipelineLogger logger = null)
 {
     _logger = logger;
     // sometimes you just don't have the junk request yet...
 }
コード例 #29
0
 public ValidateModule(Process process, IPipelineLogger logger)
 {
     _process = process;
     _logger  = logger;
 }
コード例 #30
0
 public ContextFactory(Process process, IPipelineLogger logger)
 {
     _process = process;
     _logger  = logger;
 }
コード例 #31
0
 public AutofacJunkBootstrapperFactory(IPipelineLogger logger = null)
 {
     _logger = logger;
 }