// Boostraping conveyor private static Finalizer BootstrapContainer() { var logger = LogManager.GetCurrentClassLogger(); var container = new IoCContainer(); container.SetLogger(logger); Injection.RegisterInjectionProvider(container); // Preparing jobs and finalizer // This will be our jobs var processingInts = Enumerable.Range(0, 1000).ToList(); container.RegisterSingle <IEnumerable <int> >(processingInts); // And in "collector" we will accumulate results. container.RegisterSingle("collector", new ConcurrentBag <int>()); // To find out when we can close application we use CountFinalizer Action inTheEnd = () => logger.Info($"Result: {string.Join(",", container.Get<IEnumerable<int>>("collector"))}"); var finalizer = new CountFinalizer(processingInts.Count, inTheEnd); // And boostrapping Conveyor itself Conveyor.Init(logger) .ScanForBlueprints() .WithMetricsService(new MetricsServiceSettings { BaseAddress = "http://localhost:5001/", CorsAddresses = new List <string> { "http://localhost/*" }, MetricsConfig = new MetricsConfig { IncludeLastLogsFrom = new List <string> { "mainLogFile" }, CountOfLogLines = 100 } }) .WithSupplier("IntsSupplier", Injection.InjectionProvider.Get <IntegersSupplier>()) .WithFinalizer(finalizer) .Start(); return(finalizer); }
private static void BootstrapIoCContainer() { var container = new IoCContainer(); container.SetLogger(mLogger); Injection.RegisterInjectionProvider(container); mFinalizer = new Finalizer((package, ctx) => { mMaxValue = ctx.FinalUnitContext.GetUnit <double>(); return(true); }); container.RegisterSingle(mFinalizer); var servicesSettings = new ServicesSettingsManager( JObject.Parse(File.ReadAllText("./settings.json"))["services"] .ToObject <Dictionary <string, ServiceSettings> >()); container.RegisterSingle(servicesSettings); }