/// <summary>Initializes a module and prepares it to handle requests.</summary> /// <param name="context">An <see cref="HttpApplication"/> that provides access to the methods, /// properties, and events common to all application objects within an ASP.NET application.</param> void IHttpModule.Init(HttpApplication context) { context.EndRequest += (sender, e) => { WebRequestLifestyle.CleanUpWebRequest(); }; }
public void RegisterServices(Container container) { var serviceAssemblies = new[] { typeof(IService).Assembly, Assembly.Load(AssemblyConstants.ServicesData), Assembly.Load(AssemblyConstants.ServicesAdministration), }; var registrations = serviceAssemblies .SelectMany(a => a.GetExportedTypes()) .Where(t => typeof(IService).IsAssignableFrom(t) && !t.IsAbstract && !t.IsGenericTypeDefinition) .Select(t => new { Service = t.GetInterfaces().Single(i => i != typeof(IService)), Implementation = t }) .ToList(); var webRequestLifestyle = new WebRequestLifestyle(); foreach (var registration in registrations) { container.AddRegistration( registration.Service, webRequestLifestyle.CreateRegistration(registration.Service, registration.Implementation, container)); } //// TODO: Register with LINQ! ////container.Register<ICacheService, HttpRuntimeCacheService>(webRequestLifestyle); ////container.Register<ICacheItemsProviderService, CacheItemsProviderService>(webRequestLifestyle); ////container.Register<ITagsDataService, TagsDataService>(webRequestLifestyle); ////container.Register<IPostsDataService, PostsDataService>(webRequestLifestyle); ////container.Register<ICommentsDataService, CommentsDataService>(webRequestLifestyle); }
public static Container RegisterServices() { var webLifestyle = new WebRequestLifestyle(); var container = new Container(); container.Register<IDomainNotificationHandle, DomainNotificationHandle>(webLifestyle); DomainEvents.Container = new DomainEventsContainer(container); container.Verify(); return container; }
private void InitializeDependencyInjection() { var webLifestyle = new WebRequestLifestyle(); _Container.Register<ITokenService, TokenService>(Lifestyle.Singleton); _Container.Register<ITwitterService>(() => new TwitterService("2tZwa8pvUxcoOq6gwosQhtVdQ", "81IhAKuAjUt7gLz4B1mXynjYk8ykrnjik5qAaWAkf17zqqlf1p") ); DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(_Container)); }
public static void Setup() { var container = new Container(); var perRequest = new WebRequestLifestyle(); var dataAccessAssembly = typeof(CinemaContext).Assembly; var moviesAssembly = typeof(Seat).Assembly; var promotionsAssembly = typeof(Promotions.Promotion).Assembly; var applicationAssembly = typeof(RenamePromotionCommand).Assembly; var connectionString = ConfigurationManager.ConnectionStrings["DDDCinema"].ConnectionString; container.Register(() => new CinemaContext(connectionString), perRequest); container.Register(() => new PromotionsContext(connectionString), perRequest); container.Register(() => new InfrastructureContext(connectionString), perRequest); container.Register(() => new DDDCinemaReadonly(), perRequest); var userProviderRegistration = Lifestyle.Singleton.CreateRegistration<ContextUserProvider>(container); container.AddRegistration(typeof(ICurrentUserProvider), userProviderRegistration); container.AddRegistration(typeof(ContextUserProvider), userProviderRegistration); container.Register<IWinChanceCalculatorFactory, SimpleInjectorWinChanceCalculatorFactory>(Lifestyle.Singleton); foreach (var repositorType in dataAccessAssembly.GetExportedTypes() .Where(t => t.Name.Contains("Repository"))) { container.Register(repositorType.GetInterfaces().Single(), repositorType, perRequest); } container.RegisterDecorator(typeof(ICommandHandler<LoginCommand>), typeof(AuditingLoginCommandHandler)); container.RegisterDecorator(typeof(ICommandHandler<>), typeof(AuditingCommandHandler<>), p => !p.AppliedDecorators.Any(t => t.Name.Contains("Auditing"))); container.RegisterDecorator(typeof(ICommandHandler<>), typeof(CinemaTransactionalCommandHandler<>)); container.RegisterDecorator(typeof(ICommandHandler<>), typeof(PromotionTransactionalCommandHandler<>)); container.RegisterDecorator(typeof(ICommandHandler<>), typeof(InfrastructureTransactionalCommandHandler<>)); container.Register(typeof(ICommandHandler<>), new[] { applicationAssembly }); container.RegisterCollection(typeof(INotificationSender), new[] { moviesAssembly }); var registration = perRequest.CreateRegistration<SendNotificationWhenSeatTaken>(container); container.AppendToCollection(typeof(IDomainEventHandler<>), typeof(AuditOccurrenceEventHandler<>)); container.RegisterCollection(typeof(IDomainEventHandler<>), moviesAssembly, promotionsAssembly); container.RegisterDecorator(typeof(IDomainEventHandler<>), typeof(AuditingEventHandler<>), p => !p.ImplementationType.Name.Contains("Audit")); container.Register<List<INotificationSender>>(() => container.GetAllInstances<INotificationSender>().ToList(), perRequest); container.Register<ISheduler, SagaTimeoutSheduler>(perRequest); container.Register<IPromotionCodeGenerator, PromoCodeGenerator>(perRequest); DomainEventBus.Current = new SimpleInjectorEventBus(container); DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container)); }
public static void RegisterDependencies(Container container) { var webRequestLifeStyle = new WebRequestLifestyle(); container.RegisterPersistenceDependencies(webRequestLifeStyle); container.RegisterModelDependencies(webRequestLifeStyle); container.Register<SignInService, SignInService>(webRequestLifeStyle); container.Register<UserManager<Administrator>, UserManager<Administrator>>(webRequestLifeStyle); container.Register<UserManager<Advertiser>, UserManager<Advertiser>>(webRequestLifeStyle); container.Register<IUserStore<Administrator>, AdministratorStore>(webRequestLifeStyle); container.Register<IUserStore<Advertiser>, AdvertiserStore>(webRequestLifeStyle); container.Register<IAuthenticationManager>(() => HttpContext.Current.GetOwinContext().Authentication, webRequestLifeStyle); container.RegisterWebApiControllers(GlobalConfiguration.Configuration); GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container); //container.Verify(); }