public static async Task Main(string[] args)
        {
            var containerBuilder = new ContainerBuilder();

            var config = new ConfigurationBuilder()
                         .SetBasePath(Directory.GetCurrentDirectory());

            var userSettingsFileName = $"appsettings.{Environment.UserName}.json";

            if (File.Exists($"{Directory.GetCurrentDirectory()}/{userSettingsFileName}"))
            {
                config.AddJsonFile($"appsettings.{Environment.UserName}.json");
            }
            else
            {
                config.AddJsonFile("appsettings.json");
            }

            var configurationBuilder = config.Build();
            var configurationModule  = new Autofac.Configuration.ConfigurationModule(configurationBuilder);

            containerBuilder.RegisterModule(configurationModule);
            containerBuilder.SetupConfigurations(configurationBuilder);
            containerBuilder.RegisterModule <ServiceRegistrations>();
            containerBuilder.RegisterModule <LoggerRegistrations>();
            var container = containerBuilder.Build();

            using (var scope = container.BeginLifetimeScope())
            {
                var scheduler = scope.Resolve <IJobQueueHandler>();
                await scheduler.ProcessNextJobAsync(CancellationToken);
            }
        }
        protected void Application_Start()
        {
            var env = new Teleware.Foundation.Hosting.Application.ApplicationEnvironment();
            var bootupConfigurationProvider = new BootupConfigurationProvider(env);
            var configModule = new Autofac.Configuration.ConfigurationModule(bootupConfigurationProvider.GetAutofacConfiguration());

            GlobalConfiguration.Configure(WebApiConfig.Register);

            var builder = new ContainerBuilder();

            builder.RegisterInstance(env).As <IEnvironment>();
            builder.RegisterInstance(bootupConfigurationProvider).As <IBootupConfigurationProvider>();
            builder.RegisterModule(configModule);

            var config = GlobalConfiguration.Configuration;

            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterWebApiFilterProvider(config);

            builder.RegisterType <ApiExceptionFilter>().AsWebApiExceptionFilterFor <ApiController>().InstancePerRequest();
            builder.RegisterType <UnitOfWorkCommitFilter>().AsWebApiActionFilterFor <ApiController>().InstancePerRequest();

            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
        }
Beispiel #3
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMvc(options =>
            {
                options.Filters.Add(typeof(UnitOfWorkCommitFilter));
                options.Filters.Add(typeof(ApiExceptionFilter));

                //options.OutputFormatters.RemoveType<TextOutputFormatter>();
                //options.OutputFormatters.RemoveType<HttpNoContentOutputFormatter>();
            });

            var autofacConfigs = new Autofac.Configuration.ConfigurationModule(BootupConfigurationProvider.GetAutofacConfiguration());
            var builder        = new ContainerBuilder();

            builder.Populate(services);
            builder.RegisterModule(autofacConfigs);
            builder.RegisterInstance(BootupConfigurationProvider).As <IBootupConfigurationProvider>();
            builder.RegisterInstance(Env).As <IEnvironment>();

            this.ApplicationContainer = builder.Build();

            return(new AutofacServiceProvider(this.ApplicationContainer));
        }
        public static async Task Main(string[] args)
        {
            var configBuilder = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile(ConfigFile);

            var configuration       = configBuilder.Build();
            var containerBuilder    = new ContainerBuilder();
            var configurationModule = new Autofac.Configuration.ConfigurationModule(configuration);

            containerBuilder.RegisterModule(configurationModule);
            containerBuilder.SetupConfigurations(configuration);
            containerBuilder.RegisterModule <ServiceRegistrations>();
            var container = containerBuilder.Build();

            using (var scope = container.BeginLifetimeScope())
            {
                var logger = scope.Resolve <ILogger>();
                logger.LogInfo($"Starting funding claim reminder service web job.");

                var fundingClaimsReminderService = scope.Resolve <IFundingClaimsReminderService>();
                await fundingClaimsReminderService.Execute(CancellationToken.None);
            }
        }
        public static async Task Main(string[] args)
        {
            var configBuilder = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddJsonFile(ConfigFile);

            var configuration       = configBuilder.Build();
            var containerBuilder    = new ContainerBuilder();
            var configurationModule = new Autofac.Configuration.ConfigurationModule(configuration);

            containerBuilder.RegisterModule(configurationModule);
            containerBuilder.SetupConfigurations(configuration);
            containerBuilder.RegisterModule <ServiceRegistrations>();
            containerBuilder.RegisterModule(new QuartzAutofacFactoryModule());
            containerBuilder.RegisterModule(new QuartzAutofacJobsModule(typeof(SigningFeedJob).Assembly));

            var container = containerBuilder.Build();

            var job     = JobBuilder.Create <SigningFeedJob>().WithIdentity("SigningFeedJob", "Jobs").Build();
            var trigger = TriggerBuilder.Create()
                          .WithIdentity("SigningFeedJob", "Jobs")
                          .StartNow()
                          .WithSchedule(SimpleScheduleBuilder.RepeatMinutelyForever(15)).Build();

            var cts = new CancellationTokenSource();

            var scheduler = container.Resolve <IScheduler>();
            await scheduler.ScheduleJob(job, trigger, cts.Token).ConfigureAwait(true);

            await scheduler.Start(cts.Token).ConfigureAwait(true);

            System.Console.ReadLine();

            cts.Cancel();
            await scheduler.Shutdown(cts.Token).ConfigureAwait(true);
        }