// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschraenkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using Microsoft.Extensions.Options; using Squidex.AI; using Squidex.Areas.Api.Controllers.UI; using Squidex.Domain.Apps.Core.Apps; using Squidex.Domain.Apps.Entities; using Squidex.Domain.Apps.Entities.Apps; using Squidex.Domain.Apps.Entities.History; using Squidex.Domain.Apps.Entities.Search; using Squidex.Infrastructure.Collections; using Squidex.Infrastructure.EventSourcing; namespace Squidex.Config.Domain; public static class AppsServices { public static void AddSquidexApps(this IServiceCollection services, IConfiguration config) { if (config.GetValue("apps:deletePermanent")) { services.AddSingletonAs() .As(); } services.AddSingletonAs() .AsSelf(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As().As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As().As(); services.AddSingletonAs() .As(); services.AddSingletonAs() .As(); services.AddSingleton(c => { var uiOptions = c.GetRequiredService>().Value; var patterns = new List(); if (uiOptions.RegexSuggestions != null) { foreach (var (key, value) in uiOptions.RegexSuggestions) { if (!string.IsNullOrWhiteSpace(key) && !string.IsNullOrWhiteSpace(value)) { patterns.Add(new Pattern(key, value)); } } } return new InitialSettings { Settings = new AppSettings { Patterns = patterns.ToReadonlyList() } }; }); } }