From 12330a45cb8c80b1d31b044898c07cb01767af36 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Sun, 12 Nov 2017 00:49:01 +0100 Subject: [PATCH] Bugfixes --- .../Config/Domain/InfrastructureServices.cs | 10 +++++++--- src/Squidex/Config/Domain/StoreServices.cs | 2 +- src/Squidex/Config/Identity/IdentityServices.cs | 2 +- src/Squidex/Config/ServiceExtensions.cs | 15 +++++++++------ 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/Squidex/Config/Domain/InfrastructureServices.cs b/src/Squidex/Config/Domain/InfrastructureServices.cs index d35477ea5..f6c8884d5 100644 --- a/src/Squidex/Config/Domain/InfrastructureServices.cs +++ b/src/Squidex/Config/Domain/InfrastructureServices.cs @@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using Newtonsoft.Json; using NodaTime; using Squidex.Infrastructure; @@ -100,9 +101,6 @@ namespace Squidex.Config.Domain services.AddSingleton() .As(); - services.AddSingleton() - .As(); - services.AddSingleton() .As(); @@ -111,6 +109,12 @@ namespace Squidex.Config.Domain services.AddSingleton(); services.AddSingleton(); + + services.AddSingleton(c => new InvalidatingMemoryCache( + new MemoryCache( + c.GetRequiredService>()), + c.GetRequiredService())) + .As(); } } } diff --git a/src/Squidex/Config/Domain/StoreServices.cs b/src/Squidex/Config/Domain/StoreServices.cs index ada868799..46101f10c 100644 --- a/src/Squidex/Config/Domain/StoreServices.cs +++ b/src/Squidex/Config/Domain/StoreServices.cs @@ -111,7 +111,7 @@ namespace Squidex.Config.Domain .As() .As(); - services.AddSingleton(c => new MongoAssetRepository(mongoDatabase)) + services.AddSingleton(c => new MongoRuleRepository(mongoDatabase)) .As() .As() .As(); diff --git a/src/Squidex/Config/Identity/IdentityServices.cs b/src/Squidex/Config/Identity/IdentityServices.cs index 52f941e15..330af04b0 100644 --- a/src/Squidex/Config/Identity/IdentityServices.cs +++ b/src/Squidex/Config/Identity/IdentityServices.cs @@ -21,7 +21,7 @@ namespace Squidex.Config.Identity { var dataProtection = services.AddDataProtection().SetApplicationName("Squidex"); - configuration.ConfigureByOption("identity:keyStore:type", new Options + configuration.ConfigureByOption("identity:keysStore:type", new Options { ["Redis"] = () => { diff --git a/src/Squidex/Config/ServiceExtensions.cs b/src/Squidex/Config/ServiceExtensions.cs index 5c83223d5..7b4255849 100644 --- a/src/Squidex/Config/ServiceExtensions.cs +++ b/src/Squidex/Config/ServiceExtensions.cs @@ -27,29 +27,32 @@ namespace Squidex.Config public InterfaceRegistrator As() { - this.services.AddSingleton(typeof(TInterface), c => c.GetRequiredService()); + this.services.AddSingleton(typeof(TInterface), c => + { + return c.GetRequiredService(); + }); return this; } } - public static InterfaceRegistrator AddSingleton(this IServiceCollection services, Func factory) + public static InterfaceRegistrator AddSingleton(this IServiceCollection services, Func factory) where T : class { services.AddSingleton(typeof(T), factory); return new InterfaceRegistrator(services); } - public static InterfaceRegistrator AddSingleton(this IServiceCollection services, T instance) + public static InterfaceRegistrator AddSingleton(this IServiceCollection services, T instance) where T : class { - services.AddSingleton(instance); + services.AddSingleton(typeof(T), instance); return new InterfaceRegistrator(services); } - public static InterfaceRegistrator AddSingleton(this IServiceCollection services) + public static InterfaceRegistrator AddSingleton(this IServiceCollection services) where T : class { - services.AddSingleton(typeof(T)); + services.AddSingleton(); return new InterfaceRegistrator(services); }