コード例 #1
0
        private void InitializeContainer(IApplicationBuilder app)
        {
            // Add application presentation components
            container.RegisterMvcControllers(app);
            container.RegisterMvcViewComponents(app);

            // Add application services.
            container.Register <IDbContext>(() => app.GetRequiredRequestService <StoriesDbContext>(), Lifestyle.Scoped);

            container.Register <IStoryService, StoryService>();
            container.Register <IAuthenticationService, AuthenticationService>();
            container.Register <IPasswordService, PasswordService>();
            container.Register <IUserService, UserService>();
            container.Register <ICommentService, CommentService>();
            container.Register <IVoteService, VoteService>(Lifestyle.Scoped);
            container.Register(typeof(IValidator <>), new[] { typeof(IValidator <>).GetTypeInfo().Assembly });
            container.RegisterConditional(typeof(IValidator <>), typeof(NullValidator <>), c => !c.Handled);
            container.Register <IEmailRule, EmailRule>();
            container.Register <IReferralCodeRule, ReferralCodeRule>();
            container.Register <IReferralService, ReferralService>();
            container.Register <IVoteQueueService, VoteQueueService>(Lifestyle.Scoped);

            var AmpqOptions = Configuration.GetSection("AMQPOptions").Get <AMQPOptions>();

            container.Register <IRabbitMQConnectionProvider>(() => new RabbitMQConnectionProvider(AmpqOptions), Lifestyle.Scoped);
            container.Register <IMessageService, RabbitMQMessageService>(Lifestyle.Scoped);

            MailgunOptions mailgunOptions = Configuration.GetSection("Mailgun").Get <MailgunOptions>();

            container.Register <IMailService>(() => new MailgunEmailService(mailgunOptions));

            container.RegisterConditional(typeof(Logging.ILogger), ctx => typeof(Logging.NLogAdaptor <>).MakeGenericType(ctx.Consumer.ImplementationType), Lifestyle.Singleton, context => true);
        }
コード例 #2
0
 public MailgunEmailService(MailgunOptions options)
 {
     Options = options;
 }
コード例 #3
0
 public EmailHandler(IOptions <MailgunOptions> mailgunOptions)
 {
     _mailgunOptions = mailgunOptions.Value;
 }