private static void RegisterHandlers(IServiceLocator serviceLocator) { var registrar = new BusRegistrar(serviceLocator); registrar.Register(typeof(CartHandlers)); registrar.Register(typeof(CartViewProjections)); registrar.Register(typeof(CustomerCreatedEventHandler)); }
protected void Application_Start(object sender, EventArgs e) { // Register the default hubs route: ~/signalr/hubs RouteTable.Routes.MapOwinPath("/signalr"); GlobalConfiguration.Configure(WebApiConfig.Register); // Add this code, if not present. AreaRegistration.RegisterAllAreas(); var registrar = new BusRegistrar(NinjectDependencyResolver.Current); registrar.Register(typeof(EventToHubProxy)); try { ILogger logger = NinjectDependencyResolver.Current.Resolve <ILogger>(); if (logger != null) { NinjectDependencyResolver.Current.Resolve <ICorrelationIdHelper>().SetCorrelationId(Guid.Empty); logger.LogInfo("Application started."); } } catch { } }
protected void Application_Start(object sender, EventArgs e) { // https://alexandrebrisebois.wordpress.com/2013/03/24/why-are-webrequests-throttled-i-want-more-throughput/ ServicePointManager.UseNagleAlgorithm = false; ServicePointManager.DefaultConnectionLimit = 1000; // http://stackoverflow.com/questions/12915585/azure-queue-performance ServicePointManager.Expect100Continue = false; // Register the default hubs route: ~/signalr/hubs RouteTable.Routes.MapOwinPath("/signalr"); GlobalConfiguration.Configure(WebApiConfig.Register); // Add this code, if not present. AreaRegistration.RegisterAllAreas(); var registrar = new BusRegistrar(NinjectDependencyResolver.Current); registrar.Register(typeof(EventToHubProxy)); try { ILogger logger = NinjectDependencyResolver.Current.Resolve <ILogger>(); if (logger != null) { NinjectDependencyResolver.Current.Resolve <ICorrelationIdHelper>().SetCorrelationId(Guid.Empty); logger.LogInfo("Application started."); } } catch { } }
private void RegisterHandlers(IServiceLocator serviceLocator) { var registrar = new BusRegistrar(serviceLocator); //By calling the line below, CQRSlite will register *all* Command Handlers in our project. We don't need to explicitly register any additional ones. - MPJ 8/2/2016 registrar.Register(typeof(EmployeeCommandHandler)); }
protected override BusRegistrar RegisterCommandAndEventHandlers() { BusRegistrar registrar = base.RegisterCommandAndEventHandlers(); registrar.Register(typeof(Order)); return(registrar); }
/// <summary> /// Register the all Cqrs command handlers /// </summary> protected virtual void RegisterCqrsCommandHandlers(BusRegistrar registrar) { // This will load all the handlers from the domain assembly by reading all command handlers AND event handlers in the same assembly as the provided type registrar.Register(typeof(Authentication.Commands.Handlers.CreateUserCommandHandler)); OnCqrsCommandHandlersRegistered(); }
/// <summary> /// Start the <see cref="BusRegistrar"/> by calling <see cref="BusRegistrar.Register(System.Type[])"/> passing <see cref="HandlerTypes"/> /// </summary> protected virtual BusRegistrar RegisterCommandAndEventHandlers() { var registrar = new BusRegistrar(DependencyResolver.Current); registrar.Register(HandlerTypes); return(registrar); }
public void Setup() { _locator = new TestDependencyResolver(); _register = new BusRegistrar(_locator); if (TestHandleRegistrar.HandlerList.Count == 0) { _register.Register(GetType()); } }
public When_registering_handlers() { _provider = new TestServiceProvider(); _register = new BusRegistrar(_provider, new TestHandleRegistrar()); if (TestHandleRegistrar.HandlerList.Count == 0) { _register.Register(GetType()); } }
public When_registering_handlers() { _locator = new TestServiceLocator(); _register = new BusRegistrar(_locator); if (TestHandleRegistrar.HandlerList.Count == 0) { _register.Register(GetType()); } }
public void Setup() { _locator = new TestServiceLocator(); _register = new BusRegistrar(_locator); if (TestHandleRegistrar.HandlerList.Count == 0) { _register.Register(GetType()); } }
public bool Start(HostControl hostControl) { Log.Logger = new LoggerConfiguration() .ReadFrom.AppSettings() .CreateLogger(); Log.Information($"Service {Name} v.{Version} starting..."); Log.Information($"Name: {Name}"); Log.Information($"Title: {Title}"); Log.Information($"Description: {Description}"); Log.Information($"Version: {Version}"); var builder = new ContainerBuilder(); builder.Register(c => new GridFsStorage(Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["mongodb:connection"]), ConfigurationManager.AppSettings["mongodb:database-name"])).As <IBlobStorage>().SingleInstance(); builder.RegisterType <ConsumeEventObserver>().As <IConsumeEventObserver>(); builder.RegisterType <ConsumeCommandObserver>().As <IConsumeCommandObserver>(); builder.Register(c => new RabbitMqBus( Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["RabbitMQ:ConnectionString"]), c.Resolve <IConsumeEventObserver>(), c.Resolve <IConsumeCommandObserver>() )) .As <ICommandSender>() .As <IEventPublisher>() .As <IHandlerRegistrar>() .SingleInstance(); builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies()).Where(t => { var interfaces = t.GetInterfaces(); return (interfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(ICancellableCommandHandler <>)) || interfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(ICommandHandler <>)) || interfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(ICancellableEventHandler <>)) || interfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(IEventHandler <>))); }); builder.RegisterType <ServiceProcessingControl>(); var container = builder.Build(); ServiceLocator.SetLocatorProvider(() => new AutofacServiceLocator(container)); var registrar = new BusRegistrar(new CqrsLiteDependencyResolver(container)); registrar.Register(Assembly.GetEntryAssembly()); Log.Information($"Service {Name} v.{Version} started"); return(true); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); // Register auto mapper var config = new MapperConfiguration(MapperConfigurationExtensions.AddProfiles); config.AssertConfigurationIsValid(); services.AddSingleton <IMapper>(new Mapper(config)); // Add Cqrs services services.AddSingleton <ITextSerializer, JsonTextSerializer>(); services.AddSingleton <InProcessBus>(new InProcessBus()); services.AddSingleton <ICommandSender>(y => y.GetService <InProcessBus>()); services.AddSingleton <IEventPublisher>(y => y.GetService <InProcessBus>()); services.AddSingleton <IHandlerRegistrar>(y => y.GetService <InProcessBus>()); services.AddScoped <ISession, Session>(); services.AddSingleton <IEventStore, EventStore>(); services.AddScoped <ICache, MemoryCache>(); services.AddScoped <IRepository>(y => new CacheRepository(new Repository(y.GetService <IEventStore>()), y.GetService <IEventStore>(), y.GetService <ICache>())); // Scan for commandhandlers and eventhandlers services.Scan(scan => scan.FromAssemblies(typeof(ProjectCommandHandler).GetTypeInfo().Assembly) .AddClasses(classes => classes.Where(x => { var allInterfaces = x.GetInterfaces(); return (allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(IHandler <>)) || allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(ICancellableHandler <>))); })) .AsSelf() .WithTransientLifetime() ); services.AddDbContext <EacmDbContext>(options => options.UseSqlServer(this.Configuration.GetConnectionString("DefaultConnection"))); // Add framework services. services.AddMvc(); // Register bus var serviceProvider = services.BuildServiceProvider(); var registrar = new BusRegistrar(new DependencyResolver(serviceProvider)); registrar.Register(typeof(ProjectCommandHandler)); return(serviceProvider); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); //Add Cqrs services services.AddSingleton <InProcessBus>(new InProcessBus()); services.AddSingleton <ICommandSender>(y => y.GetService <InProcessBus>()); services.AddSingleton <IEventPublisher>(y => y.GetService <InProcessBus>()); services.AddSingleton <IHandlerRegistrar>(y => y.GetService <InProcessBus>()); services.AddScoped <ISession, Session>(); services.AddSingleton <IEventStore, InMemoryEventStore>(); services.AddScoped <ICache, MemoryCache>(); services.AddScoped <IRepository>(y => new CacheRepository(new Repository(y.GetService <IEventStore>()), y.GetService <IEventStore>(), y.GetService <ICache>())); services.AddTransient <IReadModelFacade, ReadModelFacade>(); //Scan for commandhandlers and eventhandlers services.Scan(scan => scan .FromAssemblies(typeof(InventoryCommandHandlers).GetTypeInfo().Assembly) .AddClasses(classes => classes.Where(x => { var allInterfaces = x.GetInterfaces(); return (allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(ICommandHandler <>)) || allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(IEventHandler <>))); })) .AsSelf() .WithTransientLifetime() ); // Add framework services. services.AddMvc(); //Register bus var serviceProvider = services.BuildServiceProvider(); var registrar = new BusRegistrar(new DependencyResolver(serviceProvider)); registrar.Register(typeof(InventoryCommandHandlers)); return(serviceProvider); }
public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddMemoryCache(); var builder = new ContainerBuilder(); services.AddSingleton <InProcessBus>(new InProcessBus()); builder.Register <ICommandSender>(c => c.Resolve <InProcessBus>()).SingleInstance(); builder.Register <IEventPublisher>(c => c.Resolve <InProcessBus>()).SingleInstance(); builder.Register <IHandlerRegistrar>(c => c.Resolve <InProcessBus>()); builder.RegisterType <Session>().As <ISession>().InstancePerLifetimeScope(); builder.RegisterType <InMemoryEventStore>().As <IEventStore>().SingleInstance(); builder.RegisterType <MemoryCache>().As <ICache>().InstancePerLifetimeScope(); builder.Register <IRepository>(x => new CacheRepository(new Repository(x.Resolve <IEventStore>()), x.Resolve <IEventStore>(), x.Resolve <ICache>())).InstancePerLifetimeScope(); builder.RegisterType <ReadModelFacade>().As <IReadModelFacade>().InstancePerDependency(); var targetAssembly = typeof(InventoryCommandHandlers).GetTypeInfo().Assembly; builder.RegisterAssemblyTypes(targetAssembly) .As(type => type.GetInterfaces() .Where(interfacetype => interfacetype.IsAssignableFrom(typeof(ICommandHandler <>)) || interfacetype.IsAssignableFrom(typeof(IEventHandler <>)))) .AsSelf() .InstancePerDependency(); builder.Populate(services); this.ApplicationContainer = builder.Build(); var autofacServiceProvider = new AutofacServiceProvider(ApplicationContainer); var registrar = new BusRegistrar(new DependencyResolver(autofacServiceProvider)); registrar.Register(typeof(InventoryCommandHandlers)); return(autofacServiceProvider); }
/// <summary> /// Register SignalR to the path /signalr /// </summary> protected virtual void RegisterSignalR(BusRegistrar registrar) { RouteTable.Routes.MapOwinPath("/signalr"); registrar.Register(typeof(TEventToHubProxy)); }
private void RegisterHandlers(IDependencyResolver DependencyResolver) { var registrar = new BusRegistrar(DependencyResolver); registrar.Register(typeof(InventoryCommandHandlers), typeof(DtoCommandHandler <ISingleSignOnToken, UserDto>)); }
private void RegisterHandlers() { var registrar = new BusRegistrar(Cqrs.Configuration.DependencyResolver.Current); registrar.Register(typeof(InventoryCommandHandlers), typeof(DtoCommandHandler <ISingleSignOnToken, UserDto>)); }
private void RegisterHandlers(IServiceLocator serviceLocator) { var registrar = new BusRegistrar(serviceLocator); registrar.Register(typeof(InventoryCommandHandlers)); }
/// <summary> /// Start the <see cref="BusRegistrar"/> by calling <see cref="BusRegistrar.Register(System.Type[])"/> passing <see cref="HandlerTypes"/> /// </summary> protected virtual void StartBusRegistrar() { var registrar = new BusRegistrar(DependencyResolver.Current); registrar.Register(HandlerTypes); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = builder.Build(); services.AddMemoryCache(); //Add Cqrs services services.AddSingleton <InProcessBus>(new InProcessBus()); services.AddSingleton <ICommandSender>(y => y.GetService <InProcessBus>()); services.AddSingleton <IEventPublisher>(y => y.GetService <InProcessBus>()); services.AddSingleton <IHandlerRegistrar>(y => y.GetService <InProcessBus>()); services.AddScoped <ISession, Session>(); //Factory to turn scanned IEvents into Type services.AddSingleton <IEventStore, EventStore> (sProvider => new EventStore( sProvider.GetRequiredService <IEventPublisher>(), sProvider.GetRequiredService <CQRSCode.ReadModel.Repository.MongoOptions>(), sProvider.GetServices <EventType>().ToList())); services.AddScoped <ICache, CQRSlite.Cache.MemoryCache>(); services.AddScoped <IRepository>(y => new CacheRepository(new Repository(y.GetService <IEventStore>()), y.GetService <IEventStore>(), y.GetService <ICache>())); // REFACTORING REQUIRED: DIDN'T MANAGE TO PARSE JSON SETTINGS USING Configuration.GetSection("mongo").Get // var config = Configuration.GetSection("configuredClients"). //services.Configure<CQRSCode.ReadModel.Repository.MongoOptions>(Configuration.GetSection("mongo")); services.AddTransient <CQRSCode.ReadModel.Repository.MongoOptions>(sp => { var mOpt = new CQRSCode.ReadModel.Repository.MongoOptions(); mOpt.ConnectionString = Configuration["mongo:connectionString"]; mOpt.Database = Configuration["mongo:database"]; return(mOpt); }); // services.Configure<CQRSCode.ReadModel.Repository.MongoOptions>(options => Configuration.GetSection("mongo").Get<CQRSCode.ReadModel.Repository.MongoOptions>()); services.AddTransient( typeof(CQRSCode.ReadModel.Repository.IRepository <>), typeof(CQRSCode.ReadModel.Repository.Repository <>) ); //Scan for commandhandlers and eventhandlers services.Scan(scan => scan .FromAssemblies(typeof(CategoryCommandHandlers).GetTypeInfo().Assembly) .AddClasses(classes => classes.Where(x => { var allInterfaces = x.GetInterfaces(); return (allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(IHandler <>)) || allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(ICancellableHandler <>))); })) .AsSelf() .WithTransientLifetime() ); //Register tous les IEvent // services.Scan(scan => scan // .FromAssemblies(typeof(CQRSCode.ReadModel.Events.ProductCreated).GetTypeInfo().Assembly) // .AddClasses(classes => classes.Where(x => { // var allInterfaces = x.GetInterfaces(); // return // allInterfaces.Any(y => y == typeof(IEvent)); // })) // .As(type => EventType<type>) // //.AsImplementedInterfaces() // .WithTransientLifetime() // ); typeof(CQRSCode.ReadModel.Events.ProductCreated) .GetTypeInfo().Assembly.ExportedTypes .ToList().ForEach(type => { if (type.GetInterfaces().Any(iType => iType == typeof(IEvent))) { services.AddTransient <EventType, EventType>(sProvider => new EventType(type)); } }); // foreach (var service in services) // { // System.Console.WriteLine(service.ServiceType.Name + " " + service.ServiceType.AssemblyQualifiedName); // } //Register bus var serviceProvider = services.BuildServiceProvider(); var registrar = new BusRegistrar(new DependencyResolver(serviceProvider)); registrar.Register(typeof(CategoryCommandHandlers)); // Add framework services. services.AddMvc(); // services.AddAutoMapper(typeof(Startup)); var config = new AutoMapper.MapperConfiguration(cfg => { cfg.AddProfile <MappingProfile>(); }); var mapper = config.CreateMapper(); services.AddSingleton <IMapper>(mapper); }
private static void UseAutoFac() { var config = AddConfig(); var builder = new ContainerBuilder(); builder.RegisterInstance(config) .As <IAppConfig>() .SingleInstance(); builder.Register( c => new MongoDbDataStoreOptions().UseHost(config.MongoDbDataStore?.Host) .UsePort(config.MongoDbDataStore?.Port) .UseDatabase(config.MongoDbDataStore?.Database)); builder.RegisterType <MongoDbDataStore>() .As <IDataStore>() .SingleInstance(); builder.Register( c => new MongoDbEventStoreOptions().UseHost(config.MongoDbEventStore?.Host) .UsePort(config.MongoDbEventStore?.Port) .UseDatabase(config.MongoDbEventStore?.Database) .UseCollection(config.MongoDbEventStore?.Collection)); builder.RegisterType <MongoDbEventStore>() .As <IEventStore>() .SingleInstance(); builder.RegisterType <Session>() .As <ISession>() .SingleInstance(); builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()) .Where(t => t.Name.EndsWith("Translator") || t.Name.EndsWith("Handler")) .AsImplementedInterfaces() .AsSelf(); builder.RegisterType <DevicesWriteService>() .As <IDevicesWriteService>(); builder.RegisterType <Repository>(); builder.Register(c => new CacheRepository(c.Resolve <Repository>(), c.Resolve <IEventStore>())) .As <IRepository>() .SingleInstance(); builder.RegisterType <InProcessBus>() .As <ICommandSender>() .As <IHandlerRegistrar>() .As <IEventPublisher>() .SingleInstance(); builder.RegisterGeneric(typeof(TransactionalHandler <>)); container = builder.Build(); var registrar = new BusRegistrar(container); registrar.Register(typeof(CreateDeviceHandler)); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // Register the IConfiguration instance which AppConfig binds against. services.Configure <AppConfig>(Configuration); // Set symmetric security key string securityKey = Environment.GetEnvironmentVariable("JWT_SECURITY_KEY") ?? "JWT_SECURITY_KEY"; _signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(securityKey)); // Add application services services.AddSingleton <Microsoft.AspNetCore.Http.IHttpContextAccessor, Microsoft.AspNetCore.Http.HttpContextAccessor>(); services.AddSingleton <Microsoft.Extensions.Configuration.IConfiguration>(Configuration); services.AddSingleton <IRepository <BookDto>, MongoRepository <BookDto> >(); services.AddSingleton <IRepository <AccountDto>, MongoRepository <AccountDto> >(); services.AddSingleton <IRepository <Security>, MongoRepository <Security> >(); services.AddSingleton <IRepository <Price>, MongoRepository <Price> >(); services.AddSingleton <IRepository <Period>, MongoRepository <Period> >(); #region CQRS services.AddMemoryCache(); //Add Cqrs services services.AddSingleton <InProcessBus>(new InProcessBus()); services.AddSingleton <ICommandSender>(y => y.GetService <InProcessBus>()); services.AddSingleton <IEventPublisher>(y => y.GetService <InProcessBus>()); services.AddSingleton <IHandlerRegistrar>(y => y.GetService <InProcessBus>()); services.AddScoped <ISession, Session>(); services.AddSingleton <IEventStore, MongoEventStore>(); services.AddScoped <ICache, CQRSlite.Cache.MemoryCache>(); services.AddScoped <IRepository>(y => new CQRSlite.Cache.CacheRepository(new Repository(y.GetService <IEventStore>()), y.GetService <IEventStore>(), y.GetService <ICache>())); services.AddTransient <IReadModelFacade, ReadModelFacade>(); //Scan for commandhandlers and eventhandlers services.Scan(scan => scan .FromAssemblies(typeof(BookCommandHandlers).GetTypeInfo().Assembly) .AddClasses(classes => classes.Where(x => { var allInterfaces = x.GetInterfaces(); return (allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(ICommandHandler <>)) || allInterfaces.Any(y => y.GetTypeInfo().IsGenericType&& y.GetTypeInfo().GetGenericTypeDefinition() == typeof(IEventHandler <>))); })) .AsSelf() .WithTransientLifetime() ); //Register bus var serviceProvider = services.BuildServiceProvider(); var registrar = new BusRegistrar(new DependencyResolver(serviceProvider)); registrar.Register(typeof(BookCommandHandlers)); //Register Mongo MongoDefaults.GuidRepresentation = MongoDB.Bson.GuidRepresentation.Standard; BsonClassMap.RegisterClassMap <AccountCreated>(cm => { cm.AutoMap(); cm.SetIdMember(cm.GetMemberMap(c => c.ObjectId)); }); BsonClassMap.RegisterClassMap <AccountDeleted>(cm => { cm.AutoMap(); cm.SetIdMember(cm.GetMemberMap(c => c.ObjectId)); }); BsonClassMap.RegisterClassMap <BookCreated>(cm => { cm.AutoMap(); cm.SetIdMember(cm.GetMemberMap(c => c.ObjectId)); }); BsonClassMap.RegisterClassMap <ParentAccountAssigned>(cm => { cm.AutoMap(); cm.SetIdMember(cm.GetMemberMap(c => c.ObjectId)); }); BsonClassMap.RegisterClassMap <TransactionCreated>(cm => { cm.AutoMap(); cm.SetIdMember(cm.GetMemberMap(c => c.ObjectId)); }); #endregion // AutoMapper services.AddAutoMapper(); // Add framework services. services.AddMvc( config => { // TODO: Define authentication policy /*var policy = new AuthorizationPolicyBuilder() * .RequireAuthenticatedUser() * .Build(); * config.Filters.Add(new AuthorizeFilter(policy));*/ // Bad request filter config.Filters.Add(new BadRequestActionFilter()); } ).AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining <Startup>()); // FluentValidation // Set up authorization policies. services.AddAuthorization(options => { options.AddPolicy(Constants.AuthorizationPolicy, policy => policy.RequireClaim(Constants.ClaimType, Constants.ClaimValue)); }); services.AddAuthentication(o => { o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }); // Get options from app settings var jwtAppSettingOptions = Configuration.GetSection(nameof(JwtIssuerOptions)); // Configure JwtIssuerOptions services.Configure <JwtIssuerOptions>(options => { options.Issuer = jwtAppSettingOptions[nameof(JwtIssuerOptions.Issuer)]; options.SigningCredentials = new SigningCredentials(_signingKey, SecurityAlgorithms.HmacSha256); }); }
private static void RegisterHandlers(IServiceLocator serviceLocator) { var registrar = new BusRegistrar(serviceLocator); registrar.Register(typeof(CartCheckedOutEventHandler)); }