Headless CMS and Content Managment Hub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

96 lines
3.4 KiB

// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschränkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Squidex.Domain.Apps.Core.HandleRules;
using Squidex.Domain.Apps.Core.HandleRules.Extensions;
using Squidex.Domain.Apps.Core.Scripting;
using Squidex.Domain.Apps.Core.Templates;
using Squidex.Domain.Apps.Entities.Assets;
using Squidex.Domain.Apps.Entities.Comments;
using Squidex.Domain.Apps.Entities.Contents;
using Squidex.Domain.Apps.Entities.Rules;
using Squidex.Domain.Apps.Entities.Rules.Queries;
using Squidex.Domain.Apps.Entities.Rules.Runner;
using Squidex.Domain.Apps.Entities.Rules.UsageTracking;
using Squidex.Domain.Apps.Entities.Schemas;
using Squidex.Infrastructure.EventSourcing;
using Squidex.Infrastructure.Orleans;
using Squidex.Infrastructure.Reflection;
namespace Squidex.Config.Domain
{
public static class RuleServices
{
public static void AddSquidexRules(this IServiceCollection services, IConfiguration config)
{
services.Configure<RuleOptions>(
config.GetSection("rules"));
services.AddTransientAs<RuleDomainObject>()
.AsSelf();
services.AddSingletonAs<EventEnricher>()
.As<IEventEnricher>();
services.AddSingletonAs<AssetChangedTriggerHandler>()
.As<IRuleTriggerHandler>();
services.AddSingletonAs<CommentTriggerHandler>()
.As<IRuleTriggerHandler>();
services.AddSingletonAs<ContentChangedTriggerHandler>()
.As<IRuleTriggerHandler>();
services.AddSingletonAs<ReferencesFluidExtension>()
.As<IFluidExtension>();
services.AddSingletonAs<ManualTriggerHandler>()
.As<IRuleTriggerHandler>();
services.AddSingletonAs<SchemaChangedTriggerHandler>()
.As<IRuleTriggerHandler>();
services.AddSingletonAs<UsageTriggerHandler>()
.As<IRuleTriggerHandler>();
services.AddSingletonAs<RuleQueryService>()
.As<IRuleQueryService>();
services.AddSingletonAs<GrainRuleRunnerService>()
.As<IRuleRunnerService>();
services.AddSingletonAs<RuleEnricher>()
.As<IRuleEnricher>();
services.AddSingletonAs<RuleEnqueuer>()
.As<IRuleEnqueuer>().As<IEventConsumer>();
services.AddSingletonAs<RuleRegistry>()
.As<ITypeProvider>().AsSelf();
services.AddSingletonAs<EventJintExtension>()
.As<IJintExtension>();
services.AddSingletonAs<EventFluidExtensions>()
.As<IFluidExtension>();
services.AddSingletonAs<PredefinedPatternsFormatter>()
.As<IRuleEventFormatter>();
services.AddSingletonAs<RuleService>()
.As<IRuleService>();
services.AddSingletonAs<RuleEventFormatter>()
.AsSelf();
services.AddSingletonAs<GrainBootstrap<IRuleDequeuerGrain>>()
.AsSelf();
}
}
}