private static TinyIoCContainer ConfigureContainer(IModuleKeyGenerator moduleKeyGenerator, IEnumerable<IDiagnosticsProvider> providers, IRootPathProvider rootPathProvider, IRequestTracing requestTracing, NancyInternalConfiguration configuration, DiagnosticsConfiguration diagnosticsConfiguration) { var diagContainer = new TinyIoCContainer(); diagContainer.Register<IModuleKeyGenerator>(moduleKeyGenerator); diagContainer.Register<IInteractiveDiagnostics, InteractiveDiagnostics>(); diagContainer.Register<IRequestTracing>(requestTracing); diagContainer.Register<IRootPathProvider>(rootPathProvider); diagContainer.Register<NancyInternalConfiguration>(configuration); diagContainer.Register<IModelBinderLocator, DefaultModelBinderLocator>(); diagContainer.Register<IBinder, DefaultBinder>(); diagContainer.Register<IFieldNameConverter, DefaultFieldNameConverter>(); diagContainer.Register<BindingDefaults, BindingDefaults>(); diagContainer.Register<ISerializer, DefaultJsonSerializer>(); diagContainer.Register<DiagnosticsConfiguration>(diagnosticsConfiguration); foreach (var diagnosticsProvider in providers) { diagContainer.Register<IDiagnosticsProvider>(diagnosticsProvider, diagnosticsProvider.GetType().FullName); } foreach (var moduleType in AppDomainAssemblyTypeScanner.TypesOf<DiagnosticModule>().ToArray()) { diagContainer.Register(typeof(NancyModule), moduleType, moduleKeyGenerator.GetKeyForModuleType(moduleType)).AsMultiInstance(); } return diagContainer; }
private static TinyIoCContainer ConfigureContainer(IEnumerable<IDiagnosticsProvider> providers, IRootPathProvider rootPathProvider, IRequestTracing requestTracing, NancyInternalConfiguration configuration, INancyEnvironment diagnosticsEnvironment) { var diagContainer = new TinyIoCContainer(); diagContainer.Register<IInteractiveDiagnostics, InteractiveDiagnostics>(); diagContainer.Register<IRequestTracing>(requestTracing); diagContainer.Register<IRootPathProvider>(rootPathProvider); diagContainer.Register<NancyInternalConfiguration>(configuration); diagContainer.Register<IModelBinderLocator, DefaultModelBinderLocator>(); diagContainer.Register<IBinder, DefaultBinder>(); diagContainer.Register<IFieldNameConverter, DefaultFieldNameConverter>(); diagContainer.Register<BindingDefaults, BindingDefaults>(); diagContainer.Register<INancyEnvironment>(diagnosticsEnvironment); diagContainer.Register<ISerializer>(new DefaultJsonSerializer(diagnosticsEnvironment)); foreach (var diagnosticsProvider in providers) { var key = string.Concat( diagnosticsProvider.GetType().FullName, "_", diagnosticsProvider.DiagnosticObject.GetType().FullName); diagContainer.Register<IDiagnosticsProvider>(diagnosticsProvider, key); } foreach (var moduleType in AppDomainAssemblyTypeScanner.TypesOf<DiagnosticModule>().ToArray()) { diagContainer.Register(typeof(INancyModule), moduleType, moduleType.FullName).AsMultiInstance(); } return diagContainer; }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); // Enable JavaScript Object Notation Jsonp.Enable(pipelines); }
// The bootstrapper enables you to reconfigure the composition of the framework, // by overriding the various methods and properties. // For more information https://github.com/NancyFx/Nancy/wiki/Bootstrapper protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); //fill in any manual dependencies here. }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); // In reality you would use a pre-built authentication/claims provider pipelines.BeforeRequest += (ctx) => { // World's-worse-authentication (TM) // Pull the username out of the querystring if it exists // and build claims from it var username = ctx.Request.Query.username; if (username.HasValue) { ctx.CurrentUser = new DemoUserIdentity { UserName = username.ToString(), Claims = BuildClaims(username.ToString()) }; } return null; }; pipelines.AfterRequest += (ctx) => { // If status code comes back as Unauthorized then // forward the user to the login page if (ctx.Response.StatusCode == HttpStatusCode.Unauthorized) { ctx.Response = new RedirectResponse("/login?returnUrl=" + Uri.EscapeDataString(ctx.Request.Path)); } }; }
protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context) { var formsAuthConfig = new FormsAuthenticationConfiguration { RedirectUrl = "~/login", UserMapper = container.Resolve<IUserMapper>() }; FormsAuthentication.Enable(pipelines, formsAuthConfig); pipelines.AfterRequest += ctx => { var dbContext = container.Resolve<SmartFlowContext>(); dbContext.SaveChanges(); }; pipelines.OnError += (ctx, ex) => { var logger = container.Resolve<TextFileLogger>(); logger.Write("Error", Enums.LogLevel.ApplicationError, ex); return ErrorResponse.FromException(ex); }; base.RequestStartup(container, pipelines, context); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register(typeof(IProvideHalTypeConfiguration), HypermediaConfiguration()); container.Register<Repositories.IRepositoryProjection<DataModels.Album>, Repositories.SqliteRepositories.AlbumRepository>(); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); StatelessAuthentication.Enable(pipelines, new StatelessAuthenticationConfiguration(AuthenticateUser)); Metric.Config .WithAllCounters() .WithReporting(r => r.WithConsoleReport(TimeSpan.FromSeconds(30)) //.WithReporter("Resetting Reporter", () => new SampleResettingReporter(), TimeSpan.FromSeconds(5)) ) .WithNancy(pipelines); // read remote metrics from NancySample //Metric.Advanced.AttachContext("Remote", // new RemoteMetricsContext( // new Uri("http://localhost:1234/v2/json"), // TimeSpan.FromSeconds(5), // s => JsonConvert.DeserializeObject<JsonMetricsContext>(s))); pipelines.AfterRequest += ctx => { if (ctx.Response != null) { ctx.Response .WithHeader("Access-Control-Allow-Origin", "*") .WithHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); } }; }
protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { base.ConfigureRequestContainer(container, context); var ctx = new SmartFlowContext(); container.Register(ctx); container.Register<IUserMapper, SmartFlowAuthService>(); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { var dir = Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "data")); var store = new JsonStore<EventDescriptor>(dir, "store", "events"); container.Register<IDataStore<EventDescriptor>, JsonStore<EventDescriptor>>(store); container.Register<IStore>(new Store(store, new JsonSerializer())); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); var configuration = new BasicAuthenticationConfiguration(container.Resolve<IUserValidator>(), "test-realm"); BasicAuthentication.Enable(pipelines,configuration); var stateless = new StatelessAuthenticationConfiguration(c => { const string key = "X-Auth-Token"; string token = null; if (c.Request.Headers.Authorization == null || !c.Request.Headers.Authorization.Any()) { _log.ErrorFormat("No request headers are present in the request {0}", c); return null; } if (c.Request.Headers.FirstOrDefault(f => f.Key == key).Value == null || string.IsNullOrEmpty(c.Request.Headers.FirstOrDefault(f => f.Key == key).Value.First())) { _log.ErrorFormat("No Key present in the request headers"); return null; } token = c.Request.Headers.FirstOrDefault(f => f.Key == key).Value.First(); _log.InfoFormat("Token used {0}", token); var user = container.Resolve<IUserApiMapper>(); return user.GetUserFromToken(token); }); StatelessAuthentication.Enable(pipelines, stateless); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); Persistence.Config.Init(); Domain.Config.Init(container.Resolve<IEventBus>(), container.Resolve<IViewRepository>()); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register(_solution); container.Register(_fileSystem); container.RegisterMultiple<IReferenceProcessor>(new []{typeof(AddProjectReferenceProcessor), typeof(AddFileReferenceProcessor), typeof(AddGacReferenceProcessor)}); }
protected override void RequestStartup(TinyIoCContainer requestContainer, IPipelines pipelines, NancyContext context) { base.RequestStartup(requestContainer, pipelines, context); // At request startup we modify the request pipelines to // include forms authentication - passing in our now request // scoped user name mapper. // // The pipelines passed in here are specific to this request, // so we can add/remove/update items in them as we please. var loginService = requestContainer.Resolve<LoginService>(); var authConfiguration = new StatelessAuthenticationConfiguration(c => { var apiKeyFromRequest = ((DynamicDictionaryValue)c.Request.Query.ApiKey).Value as ApiKey ?? ((DynamicDictionaryValue)c.Request.Form.ApiKey).Value as ApiKey; if (apiKeyFromRequest == null) return null; if (loginService.IsApiKeyValid(apiKeyFromRequest)) { return new UserIdentity(apiKeyFromRequest.Username, new List<string>()); } return null; }); StatelessAuthentication.Enable(pipelines, authConfiguration); }
protected override void RegisterInstances(TinyIoCContainer container, IEnumerable<InstanceRegistration> instanceRegistrations) { base.RegisterInstances(container, instanceRegistrations); container.Register(mServiceManager.GetType(), mServiceManager); container.Register(mDeviceManager.GetType(), mDeviceManager); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); JsonSettings.RetainCasing = true; JsonSettings.MaxJsonLength = int.MaxValue; StaticConfiguration.CaseSensitive = false; var sessionManager = new SessionManager(new MemorySessionProvider("Encore", int.Parse(ConfigurationManager.AppSettings["Session.Timeout"]))); sessionManager.Run(pipelines); pipelines.OnError.AddItemToEndOfPipeline((ctx, ex) => { log.Error("Unhandled error on request: " + ctx.Request.Url, ex); ctx.Items["error"] = new Error { ErrorMessage = "An unhandled error occurred", StatusCode = HttpStatusCode.InternalServerError }; return null; }); ConfigureAutoMapper(); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); ExceptionlessClient.Default.Configuration.UseTraceLogger(); ExceptionlessClient.Default.RegisterNancy(pipelines); }
protected override void ApplicationStartup(TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) { base.ApplicationStartup(container, pipelines); CookieBasedSessions.Enable(pipelines); Conventions.ViewLocationConventions.Add((viewName, model, context) => string.Concat("views/", viewName)); Conventions.StaticContentsConventions.Add( StaticContentConventionBuilder.AddDirectory("assets", @"assets") ); container.Register<IFlexUserStore, FlexMembershipUserStore<User, Role>>(); container.Register(typeof(IDocumentStore), InitDocStore()); container.Register(typeof(IDocumentSession), (c, overloads) => c.Resolve<IDocumentStore>().OpenSession()); var cryptographyConfiguration = new CryptographyConfiguration( new RijndaelEncryptionProvider(new PassphraseKeyGenerator(Configuration.EncryptionKey, new byte[] { 8, 2, 10, 4, 68, 120, 7, 14 })), new DefaultHmacProvider(new PassphraseKeyGenerator(Configuration.HmacKey, new byte[] { 1, 20, 73, 49, 25, 106, 78, 86 }))); var authenticationConfiguration = new FormsAuthenticationConfiguration() { CryptographyConfiguration = cryptographyConfiguration, RedirectUrl = "/login", UserMapper = container.Resolve<IUserMapper>(), }; FormsAuthentication.Enable(pipelines, authenticationConfiguration); FlexMembershipProvider.RegisterClient( new GoogleOpenIdClient(), "Google", new Dictionary<string, object>()); }
protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { base.ConfigureRequestContainer(container, context); container.Register<IUserMapper, FakeRepository>(); container.Register<IRepository, FakeRepository>(); }
/// <summary> /// Applications the startup. /// </summary> /// <param name="container">The container.</param> /// <param name="pipelines">The pipelines.</param> protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); pipelines.BeforeRequest += ctx => { var identity = (WindowsIdentity)HttpContext.Current.User.Identity; if (identity.IsAuthenticated) { // Resolve<UserManager> // Get from DB/Cache // Add user to ICurrentUSerProvider // Get Claims ctx.CurrentUser = new DemoUserIdentity { UserName = identity.Name, Claims = new[] { "Basic", "Finance" } }; } return null; }; pipelines.AfterRequest += ctx => { // If status code comes back as Unauthorized then // forward the user to the unauthorised page //if (ctx.Response.StatusCode == HttpStatusCode.Unauthorized // || ctx.Response.StatusCode == HttpStatusCode.Forbidden) //{ // ctx.Response = new RedirectResponse("/Unauthorised"); //} }; }
/// <summary> /// Registers components in the React IoC container /// </summary> /// <param name="container">Container to register components in</param> public void Register(TinyIoCContainer container) { if (MSBuildUtils.IsInMSBuild()) { RegisterForMSBuild(container); } }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register<IArticleReader, ArticleReader>(); container.Register<IArticleStorage, ArticleStorage>(); }
public static void ConfigureContainer(TinyIoCContainer container) { var opts = container.Resolve<Options>(); container.Register(typeof(ILogHandler), typeof(Logger.Log4NetLogger)).AsSingleton(); container.Register<InMemorySessionManager>().AsSingleton(); var sessionManager = container.Resolve<InMemorySessionManager>(); container.Register<ISessionHandler, InMemorySessionManager>(sessionManager); container.RegisterMultiple<IMessageLifecycleCallbackHandler>(new List<Type>() { typeof (SessionMessageLifecycleCallback), typeof (SpamManager) }).AsSingleton(); IPAddress ipAddress; if (IPAddress.TryParse(opts.IPAddress, out ipAddress) == false) { throw new ArgumentException("Failed to parse IP Address: " + opts.IPAddress); } container.Register(typeof(TorqueMasterServer), new TorqueMasterServer(container, new IPEndPoint(ipAddress, opts.Port))); }
protected override void ApplicationStartup(TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) { base.ApplicationStartup(container, pipelines); var buildStepNames = ConfigurationManager.AppSettings["PipelineBuildSteps"].Split(','); container.Register(buildStepNames.Select(s => (IBuildStep) new BuildStep(s)).ToArray()); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { Trace.TraceInformation("Bootstrapper.ConfigureApplicationContainer"); base.ConfigureApplicationContainer(container); container.Register<IDocumentFolder>((c,p)=> new DocumentFolder(_rootDirectory)); }
private void RegisterProjections(TinyIoCContainer container) { var itemDetailRepository = new InMemoryItemDetailRepository(); container.Register<IItemDetailRepository>(itemDetailRepository); var itemDetailViewWriter = new InMemoryViewWriter<Guid, ItemDetailViewModel>(itemDetailRepository); var itemDetails = new ItemDetailResultProjection( itemDetailViewWriter); var itemDetailSubscription = new GetEventStoreEventDispatcher( EventStoreConnection, serializerSettings, itemDetailViewWriter, bus); itemDetailSubscription.Subscribe<ItemTracked>(itemDetails.Handle); itemDetailSubscription.Subscribe<ItemPicked>(itemDetails.Handle); itemDetailSubscription.Subscribe<ItemLiquidated>(itemDetails.Handle); itemDetailSubscription.Subscribe<ItemReceived>(itemDetails.Handle); itemDetailSubscription.Subscribe<ItemQuantityAdjusted>(itemDetails.Handle); itemDetailSubscription.Subscribe<CycleCountStarted>(itemDetails.Handle); itemDetailSubscription.Subscribe<CycleCountCompleted>(itemDetails.Handle); itemDetailSubscription.StartDispatching(); container.Register<IItemSearchRepository>( (c, n) => new RavenItemSearchRepository(c.Resolve<IDocumentSession>())); var itemSearchSessionObserver = new CatchUpDocumentSessionObserver<ItemSearchResultViewModel>(DocumentStore); bus.Register(itemSearchSessionObserver); var itemSearch = new ItemSearchResultProjection( new RavenDbViewWriter<Guid, ItemSearchResultViewModel>( itemSearchSessionObserver)); var itemSearchSubscription = new GetEventStoreEventDispatcher( EventStoreConnection, serializerSettings, itemSearchSessionObserver, bus); itemSearchSubscription.Subscribe<ItemTracked>(itemSearch.Handle); itemSearchSubscription.StartDispatching(); }
// The bootstrapper enables you to reconfigure the composition of the framework, // by overriding the various methods and properties. // For more information https://github.com/NancyFx/Nancy/wiki/Bootstrapper protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { container.Register<IStorage, Storage>().AsSingleton(); container.Register<CredentialsStorage>().AsSingleton(); var serverScheduler = new ServerScheduler(container.Resolve<IStorage>()); serverScheduler.Start(); }
// Overriding this just to show how it works, not actually necessary as autoregister // takes care of it all. protected override void ConfigureApplicationContainer(TinyIoCContainer existingContainer) { // We don't call base because we don't want autoregister // we just register our one known dependency as an application level singleton existingContainer.Register<IApplicationDependency, ApplicationDependencyClass>().AsSingleton(); existingContainer.Register<IRazorConfiguration, MyRazorConfiguration>().AsSingleton(); }
public ViewModelLocator() { _container = TinyIoCContainer.Current; _container.Register<ClockViewModel>().AsSingleton(); _container.Register<AirportsViewModel>().AsSingleton(); _container.Register<IGetAirports, AirportNamesService>().AsSingleton(); _container.Register<IDispatchOnUIThread, DispatchAdapter>().AsSingleton(); _container.Register<IStoreObjects, ObjectStore>().AsSingleton(); #if DEBUG _container.Register<IGeolocation>(new PresetLocationService(63.433281, 10.419294, _container.Resolve<IDispatchOnUIThread>())); #else _container.Register<IGeolocation, MonoMobile.Extensions.Geolocation>(); #endif _container.Register(new NearestAirportService(_container.Resolve<IGeolocation>(), _container.Resolve<ITinyMessengerHub>())); if (DesignerProperties.IsInDesignTool) { //_container.Register<IStoreObjects, DesignTimeObjectStore>().AsSingleton(); _container.Register<IGetFlights, DesignTimeFlightsService>().AsSingleton(); _container.Register<IFlightsViewModel, FlightsDesignTimeViewModel>().AsSingleton(); } else { _container.Register<IGetFlights, FlightsService>().AsSingleton(); _container.Register<IFlightsViewModel, FlightsViewModel>().AsSingleton(); } }
protected override void ConfigureRequestContainer(TinyIoCContainer _container, NancyContext _context) { base.ConfigureRequestContainer(_container, _context); }
public MessageMapperFactory(TinyIoCContainer windsorContainer) { _container = windsorContainer; }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register(_serviceProvider.GetService <ILoggerFactory>()); container.RegisterAutoQueryable(); }
private static void SetupSimulatorPeripherials(TinyIoCContainer container) { container.Register <IBeaconSdk, SimulatorBeaconSdk>(); }
private static void SetupDevicePeripherials(TinyIoCContainer container) { container.Register <IBeaconSdk, BlueCatBeaconSdk>(); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register <IComplexService, ComplexService>(); }
protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context) { ErrorHandler.Enable(pipelines, container.Resolve <IResponseNegotiator>()); }
// Here in case you need to make any general changes to your IOC container config protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); }
// Initializes the boostrapper. // Can be used for adding hooks or other initialization tasks that aren't container-related protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); }
// Used to manually register instances of an interface rather than using the default protected override void RegisterInstances(TinyIoCContainer container, IEnumerable <InstanceRegistration> instanceRegistrations) { base.RegisterInstances(container, instanceRegistrations); }
protected static void UseExplorerHandler(TinyIoCContainer container) { _explorerHandler = container.Resolve <WindowsExplorerHandler>(); _explorerUpdateTimer = new Timer(RefreshTimerCallback, null, 1000, Timeout.Infinite); }
// Similar to ApplicationStart, but fired per-request! protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context) { base.RequestStartup(container, pipelines, context); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { DiagnosticsHook.Disable(pipelines); }
public static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .WriteTo.Console() .CreateLogger(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIocHandlerFactory(container); var messageMapperFactory = new TinyIoCMessageMapperFactory(container); container.Register <IHandleRequests <GreetingEvent>, GreetingEventHandler>(); var subscriberRegistry = new SubscriberRegistry(); subscriberRegistry.Register <GreetingEvent, GreetingEventHandler>(); //create policies var retryPolicy = Policy .Handle <Exception>() .WaitAndRetry(new[] { TimeSpan.FromMilliseconds(50), TimeSpan.FromMilliseconds(100), TimeSpan.FromMilliseconds(150) }); var circuitBreakerPolicy = Policy .Handle <Exception>() .CircuitBreaker(1, TimeSpan.FromMilliseconds(500)); var policyRegistry = new PolicyRegistry() { { CommandProcessor.RETRYPOLICY, retryPolicy }, { CommandProcessor.CIRCUITBREAKER, circuitBreakerPolicy } }; //create message mappers var messageMapperRegistry = new MessageMapperRegistry(messageMapperFactory) { { typeof(GreetingEvent), typeof(GreetingEventMessageMapper) } }; //create the gateway var rmqConnnection = new RmqMessagingGatewayConnection { AmpqUri = new AmqpUriSpecification(new Uri("amqp://*****:*****@localhost:5672/%2f")), Exchange = new Exchange("paramore.brighter.exchange"), }; var rmqMessageConsumerFactory = new RmqMessageConsumerFactory(rmqConnnection); var rmqMessageProducerFactory = new RmqMessageProducerFactory(rmqConnnection); // Service Activator connections var connections = new List <Connection> { new Connection( new ConnectionName("paramore.example.greeting"), new InputChannelFactory(rmqMessageConsumerFactory, rmqMessageProducerFactory), typeof(GreetingEvent), new ChannelName("greeting.event"), "greeting.event", timeoutInMilliseconds: 200) }; var builder = DispatchBuilder .With() .CommandProcessor(CommandProcessorBuilder.With() .Handlers(new HandlerConfiguration(subscriberRegistry, handlerFactory)) .Policies(policyRegistry) .NoTaskQueues() .RequestContextFactory(new InMemoryRequestContextFactory()) .Build() ) .MessageMappers(messageMapperRegistry) .ChannelFactory(new InputChannelFactory(rmqMessageConsumerFactory, rmqMessageProducerFactory)) .Connections(connections); var dispatcher = builder.Build(); dispatcher.Receive(); Console.WriteLine("Press Enter to stop ..."); Console.ReadLine(); dispatcher.End().Wait(); }
public Registry(TinyIoCContainer kernel) { _kernel = kernel; }
public TinyIocHandlerFactory(TinyIoCContainer container) { _container = container; }
public static void ConfigureApp(IAppBuilder appBuilder, TinyIoCContainer container) {
public DocumentService() { log4net.Config.XmlConfigurator.Configure(); var container = new TinyIoCContainer(); var handlerFactory = new TinyIocHandlerFactory(container); var messageMapperFactory = new TinyIoCMessageMapperFactory(container); container.Register <IHandleRequests <DocumentCreatedEvent>, DocumentCreatedEventHandler>(); container.Register <IHandleRequests <DocumentUpdatedEvent>, DocumentUpdatedEventHandler>(); container.Register <IHandleRequests <FolderCreatedEvent>, FolderCreatedEventHandler>(); var subscriberRegistry = new SubscriberRegistry(); subscriberRegistry.Register <DocumentCreatedEvent, DocumentCreatedEventHandler>(); subscriberRegistry.Register <DocumentUpdatedEvent, DocumentUpdatedEventHandler>(); subscriberRegistry.Register <FolderCreatedEvent, FolderCreatedEventHandler>(); //create policies var retryPolicy = Policy .Handle <Exception>() .WaitAndRetry(new[] { TimeSpan.FromMilliseconds(5000), TimeSpan.FromMilliseconds(10000), TimeSpan.FromMilliseconds(10000) }); var circuitBreakerPolicy = Policy .Handle <Exception>() .CircuitBreaker(1, TimeSpan.FromMilliseconds(500)); var policyRegistry = new PolicyRegistry { { CommandProcessor.RETRYPOLICY, retryPolicy }, { CommandProcessor.CIRCUITBREAKER, circuitBreakerPolicy } }; //create message mappers var messageMapperRegistry = new MessageMapperRegistry(messageMapperFactory) { { typeof(FolderCreatedEvent), typeof(FolderCreatedEventMessageMapper) }, { typeof(DocumentCreatedEvent), typeof(DocumentCreatedEventMessageMapper) }, { typeof(DocumentUpdatedEvent), typeof(DocumentUpdatedEventMessageMapper) } }; var awsCredentials = new StoredProfileAWSCredentials(); _dispatcher = DispatchBuilder.With() .CommandProcessor(CommandProcessorBuilder.With() .Handlers(new HandlerConfiguration(subscriberRegistry, handlerFactory)) .Policies(policyRegistry) .NoTaskQueues() .RequestContextFactory(new InMemoryRequestContextFactory()) .Build()) .MessageMappers(messageMapperRegistry) .DefaultChannelFactory(new InputChannelFactory(new SqsMessageConsumerFactory(awsCredentials))) .Connections(new Connection[] { new Connection <DocumentCreatedEvent>( new ConnectionName("paramore.example.documentsandfolders.documentcreatedevent"), new ChannelName("https://sqs.eu-west-1.amazonaws.com/027649620536/DocumentCreatedEvent"), new RoutingKey("DocumentCreatedEvent"), timeoutInMilliseconds: 5000, noOfPerformers: 10), new Connection <DocumentUpdatedEvent>( new ConnectionName("paramore.example.documentsandfolders.documentupdatedevent"), new ChannelName("https://sqs.eu-west-1.amazonaws.com/027649620536/DocumentUpdatedEvent"), new RoutingKey("DocumentUpdatedEvent"), timeoutInMilliseconds: 5000, noOfPerformers: 10), new Connection <FolderCreatedEvent>( new ConnectionName("paramore.example.documentsandfolders.foldercreateddevent"), new ChannelName("https://sqs.eu-west-1.amazonaws.com/027649620536/FolderCreatedEvent"), new RoutingKey("FolderCreatedEvent"), timeoutInMilliseconds: 5000, noOfPerformers: 10) }).Build(); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); // We don't call "base" here to prevent auto-discovery of // types/dependencies }
public FragmentFactory(TinyIoCContainer container) { _container = container; }
protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { container.Register(new MyDependency(context)); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { PersistableSessions.Enable(pipelines, new InMemorySessionConfiguration()); }
protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) { container.Register <IService, Service>(); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register <IDocumentStore>(InitializeStore()); }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); container.Register(this.log); }
public Locator(TinyIoCContainer container) { _container = container ?? throw new ArgumentNullException(nameof(container)); }
/// <summary> /// Registers components in the React IoC container /// </summary> /// <param name="container">Container to register components in</param> public void Register(TinyIoCContainer container) { container.Register <IFileSystem, AspNetFileSystem>().AsSingleton(); container.Register <ICache, MemoryFileCacheCore>().AsSingleton(); }
protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register <ILog>(LogManager.GetLogger(Setting.LogInstance)); }
public FFXIVProcessKo(TinyIoCContainer container) : base(container) { }
protected override void InitialiseInternal(TinyIoCContainer container) { base.InitialiseInternal(container); this.RegisterCompressionCheck(); }
// The bootstrapper enables you to reconfigure the composition of the framework, // by overriding the various methods and properties. // For more information https://github.com/NancyFx/Nancy/wiki/Bootstrapper protected override void ApplicationStartup(TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) { var projRep = new ProjectRepository(null); var sampleProj = Samples.SampleProject(); ProjectIdUsedDuringDevelopment = sampleProj.Id; var user = Samples.SampleUser(sampleProj); UserIdUsedDuringDevelopment = user.Id; projRep.AddProject(sampleProj); projRep.AddProject(new Project {Id = Guid.NewGuid(), Name = "Testobjekt"}); projRep.AddProject(new Project {Id = Guid.NewGuid(), Name = "Skräpobjekt"}); var fileSystem = new MockFileSystem(); fileSystem.Directory.CreateDirectory(@"c:\HeatOn\users"); fileSystem.Directory.CreateDirectory(@"c:\HeatOn\projects"); var userRep = new UserRepository(fileSystem); userRep.SaveUser(user); container.Register<IProjectService>(new ProjectService(projRep)); container.Register<IUserRepository>(userRep); //Conventions.ViewLocationConventions.Add((viewName, model, context) => //{ // return string.Concat("bin/views/", viewName); //}); }