From 10348e1e0773a357c446f617909302a43be17be8 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Wed, 14 Sep 2016 21:34:59 +0200 Subject: [PATCH] Some testing --- .../Modules/Api/Schemas/CreateFieldDto.cs | 2 ++ .../Schema/ModelFieldRegistry.cs | 5 ++++ .../CQRS/DomainObject.cs | 27 +++++++++++-------- .../Implementations/EntityMapper.cs | 4 +-- .../Schema/ModelSchemaDomainObject.cs | 2 +- 5 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/PinkParrot/Modules/Api/Schemas/CreateFieldDto.cs b/src/PinkParrot/Modules/Api/Schemas/CreateFieldDto.cs index 179df5a93..ee359419e 100644 --- a/src/PinkParrot/Modules/Api/Schemas/CreateFieldDto.cs +++ b/src/PinkParrot/Modules/Api/Schemas/CreateFieldDto.cs @@ -7,6 +7,7 @@ // ========================================================================== using System.ComponentModel.DataAnnotations; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace PinkParrot.Modules.Api.Schemas @@ -14,6 +15,7 @@ namespace PinkParrot.Modules.Api.Schemas public class CreateFieldDto { [Required] + [JsonProperty("$type")] public string Name { get; set; } [Required] diff --git a/src/pinkparrot_core/PinkParrot.Core/Schema/ModelFieldRegistry.cs b/src/pinkparrot_core/PinkParrot.Core/Schema/ModelFieldRegistry.cs index c0d967e8d..70935b3eb 100644 --- a/src/pinkparrot_core/PinkParrot.Core/Schema/ModelFieldRegistry.cs +++ b/src/pinkparrot_core/PinkParrot.Core/Schema/ModelFieldRegistry.cs @@ -49,6 +49,11 @@ namespace PinkParrot.Core.Schema } } + public ModelFieldRegistry() + { + Add((id, name, properties) => new NumberField(id, name, (NumberFieldProperties)properties)); + } + public void Add(FactoryFunction fieldFactory) { Guard.NotNull(fieldFactory, nameof(fieldFactory)); diff --git a/src/pinkparrot_infrastructure/PinkParrot.Infrastructure/CQRS/DomainObject.cs b/src/pinkparrot_infrastructure/PinkParrot.Infrastructure/CQRS/DomainObject.cs index 51777f4ef..14c34ebe0 100644 --- a/src/pinkparrot_infrastructure/PinkParrot.Infrastructure/CQRS/DomainObject.cs +++ b/src/pinkparrot_infrastructure/PinkParrot.Infrastructure/CQRS/DomainObject.cs @@ -38,27 +38,32 @@ namespace PinkParrot.Infrastructure.CQRS this.version = version; } - protected abstract void ApplyEvent(Envelope @event); + protected abstract void DispatchEvent(Envelope @event); - protected void RaiseEvent(Envelope envelope) where TEvent : class, IEvent + protected void RaiseEvent(IEvent @event) { - Guard.NotNull(envelope, nameof(envelope)); - - var envelopeToAdd = envelope.To(); - - uncomittedEvents.Add(envelopeToAdd); + RaiseEvent(EnvelopeFactory.ForEvent(@event, this)); + } - ApplyEvent(envelopeToAdd); + private void ApplyEventCore(Envelope @event) + { + DispatchEvent(@event); version++; } - protected void RaiseEvent(IEvent @event) + protected void RaiseEvent(Envelope @event) where TEvent : class, IEvent { - RaiseEvent(EnvelopeFactory.ForEvent(@event, this)); + Guard.NotNull(@event, nameof(@event)); + + var envelopeToAdd = @event.To(); + + uncomittedEvents.Add(envelopeToAdd); + + ApplyEventCore(envelopeToAdd); } void IAggregate.ApplyEvent(Envelope @event) { - ApplyEvent(@event); version++; + ApplyEventCore(@event); } void IAggregate.ClearUncommittedEvents() diff --git a/src/pinkparrot_read/PinkParrot.Read/Repositories/Implementations/EntityMapper.cs b/src/pinkparrot_read/PinkParrot.Read/Repositories/Implementations/EntityMapper.cs index 003d7ae70..9b53a6169 100644 --- a/src/pinkparrot_read/PinkParrot.Read/Repositories/Implementations/EntityMapper.cs +++ b/src/pinkparrot_read/PinkParrot.Read/Repositories/Implementations/EntityMapper.cs @@ -36,14 +36,14 @@ namespace PinkParrot.Read.Repositories.Implementations public static BsonDocument ToJsonBsonDocument(this T value, JsonSerializerSettings settings) { - var json = JsonConvert.SerializeObject(value, settings); + var json = JsonConvert.SerializeObject(value, settings).Replace("$type", "§type"); return BsonDocument.Parse(json); } public static T ToJsonObject(this BsonDocument document, JsonSerializerSettings settings) { - var json = document.ToJson(); + var json = document.ToJson().Replace("§type", "$type"); return JsonConvert.DeserializeObject(json, settings); } diff --git a/src/pinkparrot_write/PinkParrot.Write/Schema/ModelSchemaDomainObject.cs b/src/pinkparrot_write/PinkParrot.Write/Schema/ModelSchemaDomainObject.cs index 3bcaedf6f..38919c7af 100644 --- a/src/pinkparrot_write/PinkParrot.Write/Schema/ModelSchemaDomainObject.cs +++ b/src/pinkparrot_write/PinkParrot.Write/Schema/ModelSchemaDomainObject.cs @@ -187,7 +187,7 @@ namespace PinkParrot.Write.Schema } } - protected override void ApplyEvent(Envelope @event) + protected override void DispatchEvent(Envelope @event) { this.DispatchAction(@event.Payload); }