// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) // All rights reserved. Licensed under the MIT license. // ========================================================================== using System.Threading.Tasks; using Squidex.Domain.Apps.Entities.History; using Squidex.Domain.Apps.Events; using Squidex.Domain.Apps.Events.Schemas; using Squidex.Infrastructure; using Squidex.Infrastructure.EventSourcing; namespace Squidex.Domain.Apps.Entities.Schemas { public sealed class SchemaHistoryEventsCreator : HistoryEventsCreatorBase { public SchemaHistoryEventsCreator(TypeNameRegistry typeNameRegistry) : base(typeNameRegistry) { AddEventMessage( "reordered fields of schema {[Name]}."); AddEventMessage( "created schema {[Name]}."); AddEventMessage( "updated schema {[Name]}."); AddEventMessage( "deleted schema {[Name]}."); AddEventMessage( "published schema {[Name]}."); AddEventMessage( "unpublished schema {[Name]}."); AddEventMessage( "reordered fields of schema {[Name]}."); AddEventMessage( "configured script of schema {[Name]}."); AddEventMessage( "added field {[Field]} to schema {[Name]}."); AddEventMessage( "deleted field {[Field]} from schema {[Name]}."); AddEventMessage( "has locked field {[Field]} of schema {[Name]}."); AddEventMessage( "has hidden field {[Field]} of schema {[Name]}."); AddEventMessage( "has shown field {[Field]} of schema {[Name]}."); AddEventMessage( "disabled field {[Field]} of schema {[Name]}."); AddEventMessage( "disabled field {[Field]} of schema {[Name]}."); AddEventMessage( "has updated field {[Field]} of schema {[Name]}."); AddEventMessage( "deleted field {[Field]} of schema {[Name]}."); } protected override Task CreateEventCoreAsync(Envelope @event) { if (@event.Payload is SchemaEvent schemaEvent) { var channel = $"schemas.{schemaEvent.SchemaId.Name}"; var result = ForEvent(@event.Payload, channel).AddParameter("Name", schemaEvent.SchemaId.Name); if (schemaEvent is FieldEvent fieldEvent) { result.AddParameter("Field", fieldEvent.FieldId.Name); } return Task.FromResult(result); } return Task.FromResult(null); } } }