// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { SetAppSettingsFile(); _config = Configuration.Get <AppConfig>(); services.AddControllers(); services.AddAutoMapper(new Type[] { typeof(AutoMapperProfile) }); services.AddDbContext <DataContext> (options => options.UseSqlServer(_config.DBConfig.ConnectionString)); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "RabbitMQ.Producer", Version = "v1" }); }); // Add Quartz services services.AddTransient <IJobFactory, SingletonJobFactory>(); services.AddTransient <ISchedulerFactory, StdSchedulerFactory>(); // Add HostedService services.AddHostedService <QuartzHostedService>(); // Add our job services.AddTransient <HandleReDeliveryMessages>(); services.AddSingleton(new JobSchedule(jobType: typeof(HandleReDeliveryMessages), cronExpression: _config.ReDelivery.JobRunTime)); services.AddTransient <IQueueService, QueueService>(); services.AddTransient <IReDeliveryService, ReDeliveryService>(); services.AddSingleton <ICustomLoggingConfig, CustomLoggingConfig>(); services.AddSingleton(_config); var serviceProvider = services.BuildServiceProvider(); CustomRabbitMQ = new CustomRabbitMQ(_config, serviceProvider); services.AddSingleton(CustomRabbitMQ); }
public QueueService(Data.DataContext context, CustomRabbitMQ customRabbitMQ) { _context = context; _customRabbitMQ = customRabbitMQ; }