Ejemplo n.º 1
0
        public void ConfigureServices(IServiceCollection services)
        {
            var serilogSettings = Configuration.GetSection("SerilogSettings").Get <SerilogSettings>();

            SerilogConfiguration.Configure(serilogSettings);

            var ravenConfig = Configuration.GetSection("RavenDbSettings").Get <RavenDbSettings>();

            services.AddSingleton(RavenDbConfiguration.Configure(ravenConfig));

            var filesConfig = Configuration.GetSection("FileSettings").Get <FilesSettings>();

            services.AddSingleton(filesConfig);

            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(options => {
                options.Events.OnRedirectToLogin = (context) =>
                {
                    context.Response.StatusCode = 401;
                    return(Task.CompletedTask);
                };
            });

            services.AddMvc();
        }
Ejemplo n.º 2
0
        protected override void ConfigureRequestContainer(IKernel container, NancyContext context)
        {
            base.ConfigureRequestContainer(container, context);

            RavenDbConfiguration.ConfigureSession(container);
            AuthConfiguration.ConfigureRequest(container);
            ServiceConfiguration.ConfigureRequestServices(container);
        }
Ejemplo n.º 3
0
        private async Task BuildEventStore(IServiceCollection services)
        {
            //Create EventStore Connection
            var eventStoreConnection = EventStoreConnection.Create(
                Configuration["EventStore:ConnectionString"],
                ConnectionSettings.Create()
                .KeepReconnecting()
                .EnableVerboseLogging()
                .SetHeartbeatInterval(TimeSpan.FromMilliseconds(5 * 1000))
                .UseDebugLogger(),
                Environment.ApplicationName
                );

            eventStoreConnection.Connected += (sender, args)
                                              => Console.WriteLine($"Connection to {args.RemoteEndPoint} event store established.");

            eventStoreConnection.ErrorOccurred += (sender, args)
                                                  => Console.WriteLine($"Connection error : {args.Exception}");

            await eventStoreConnection.ConnectAsync();

            /*
             * eventStore cluster connection builder
             * var eventStoreConnection= await EventStoreConnectionBuilder.ConfigureStore();
             */
            var aggregateStore   = new GesAggregateStore(eventStoreConnection, null);
            var gesSnapshotStore = new GesSnapshotStore(eventStoreConnection, null);

            var repository = new Repository(aggregateStore, gesSnapshotStore);

            services.AddSingleton <IRepository>(repository);

            services.AddSingleton(new ApplicationService(repository));

            var documentStore = RavenDbConfiguration.Build(Configuration["RavenDb:Url"], Configuration["RavenDb:Database"]);

            IDocumentSession GetSession() => documentStore.OpenSession();

            await ProjectionManager.With
            .Connection(eventStoreConnection)
            .CheckpointStore(new RavenDbCheckPointStore(GetSession))
            .SetProjections(new Projection[]
            {
                new ActiveReviews(GetSession),
                new ReviewsByOwner(GetSession),
                new ReviewsByProducts(GetSession),
            })
            .StartAll();
        }
        public static IServiceCollection AddRavenDb(this IServiceCollection services, IConfiguration configuration, string configSectionName = DefaultConfigSectionName)
        {
            var ravenDbConfigSection = configuration.GetSection(configSectionName);
            var ravenDbConfig        = new RavenDbConfiguration();

            ravenDbConfigSection.Bind(ravenDbConfig);

            var documentStore = new DocumentStore
            {
                Database = ravenDbConfig.Database,
                Urls     = ravenDbConfig.Urls
            }.Initialize();

            return(services.AddSingleton(documentStore));
        }
Ejemplo n.º 5
0
 protected override void RequestStartup(IKernel container, IPipelines pipelines, NancyContext context)
 {
     AuthConfiguration.ConfigureFormsAuth(container, pipelines);
     RavenDbConfiguration.EnsureSessionPersistence(container, pipelines);
 }
Ejemplo n.º 6
0
 protected override void ConfigureApplicationContainer(IKernel container)
 {
     base.ConfigureApplicationContainer(container);
     RavenDbConfiguration.ConfigureStore(container);
     ServiceConfiguration.ConfigureApplicationServices(container);
 }