diff --git a/backend/extensions/Squidex.Extensions/Samples/AssetStore/MemoryAssetStorePlugin.cs b/backend/extensions/Squidex.Extensions/Samples/AssetStore/MemoryAssetStorePlugin.cs index 6a24ef16c..41f6e9b61 100644 --- a/backend/extensions/Squidex.Extensions/Samples/AssetStore/MemoryAssetStorePlugin.cs +++ b/backend/extensions/Squidex.Extensions/Samples/AssetStore/MemoryAssetStorePlugin.cs @@ -6,6 +6,9 @@ // ========================================================================== using System; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Squidex.Infrastructure.Assets; @@ -13,14 +16,40 @@ using Squidex.Infrastructure.Plugins; namespace Squidex.Extensions.Samples.AssetStore { - public sealed class MemoryAssetStorePlugin : IPlugin + public sealed class MemoryAssetStorePlugin : IPlugin, IStartupFilter { + public Action Configure(Action next) + { + return builder => + { + builder.Use(async (context, next) => + { + if (context.Request.Path.StartsWithSegments("/api/assets/memory")) + { + context.Response.StatusCode = 200; + + await context.Response.WriteAsync("Memory Asset Store used."); + } + else + { + await next(); + } + }); + + next(builder); + }; + } + public void ConfigureServices(IServiceCollection services, IConfiguration config) { var storeType = config.GetValue("assetStore:type"); - if (string.Equals(storeType, "Memory", StringComparison.OrdinalIgnoreCase)) + var isMemoryAssetsUsed = string.Equals(storeType, "Memory", StringComparison.OrdinalIgnoreCase); + + if (isMemoryAssetsUsed) { + services.AddSingleton(this); + services.AddSingletonAs() .As(); }