// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Infrastructure; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Options; using Squidex.Config.Domain; using Squidex.Domain.Apps.Entities; using Squidex.Infrastructure.Caching; using Squidex.Infrastructure.Translations; using Squidex.Pipeline.Plugins; using Squidex.Pipeline.Robots; using Squidex.Shared; using Squidex.Web; using Squidex.Web.Pipeline; using Squidex.Web.Services; namespace Squidex.Config.Web { public static class WebServices { public static void AddSquidexMvcWithPlugins(this IServiceCollection services, IConfiguration config) { var translator = new ResourcesLocalizer(Texts.ResourceManager); T.Setup(translator); services.AddDefaultWebServices(config); services.AddDefaultForwardRules(); services.AddSingletonAs(c => new ExposedValues(c.GetRequiredService>().Value, config, typeof(WebServices).Assembly)) .AsSelf(); services.AddSingletonAs() .AsSelf(); services.AddSingletonAs() .AsSelf(); services.AddSingletonAs() .AsSelf(); services.AddSingletonAs() .AsSelf(); services.AddSingletonAs() .AsSelf(); services.AddSingletonAs(c => translator) .As(); services.AddSingletonAs() .As().As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.Configure(options => { options.SuppressModelStateInvalidFilter = true; }); services.AddLocalization(); services.AddMvc(options => { options.Filters.Add(); options.Filters.Add(); options.Filters.Add(); options.Filters.Add(); options.Filters.Add(); }) .AddDataAnnotationsLocalization() .AddRazorRuntimeCompilation() .AddSquidexPlugins(config) .AddSquidexSerializers(); } } }