Browse Source

Some testing

pull/1/head
Sebastian Stehle 9 years ago
parent
commit
10348e1e07
  1. 2
      src/PinkParrot/Modules/Api/Schemas/CreateFieldDto.cs
  2. 5
      src/pinkparrot_core/PinkParrot.Core/Schema/ModelFieldRegistry.cs
  3. 27
      src/pinkparrot_infrastructure/PinkParrot.Infrastructure/CQRS/DomainObject.cs
  4. 4
      src/pinkparrot_read/PinkParrot.Read/Repositories/Implementations/EntityMapper.cs
  5. 2
      src/pinkparrot_write/PinkParrot.Write/Schema/ModelSchemaDomainObject.cs

2
src/PinkParrot/Modules/Api/Schemas/CreateFieldDto.cs

@ -7,6 +7,7 @@
// ========================================================================== // ==========================================================================
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace PinkParrot.Modules.Api.Schemas namespace PinkParrot.Modules.Api.Schemas
@ -14,6 +15,7 @@ namespace PinkParrot.Modules.Api.Schemas
public class CreateFieldDto public class CreateFieldDto
{ {
[Required] [Required]
[JsonProperty("$type")]
public string Name { get; set; } public string Name { get; set; }
[Required] [Required]

5
src/pinkparrot_core/PinkParrot.Core/Schema/ModelFieldRegistry.cs

@ -49,6 +49,11 @@ namespace PinkParrot.Core.Schema
} }
} }
public ModelFieldRegistry()
{
Add<NumberFieldProperties>((id, name, properties) => new NumberField(id, name, (NumberFieldProperties)properties));
}
public void Add<TFieldProperties>(FactoryFunction fieldFactory) public void Add<TFieldProperties>(FactoryFunction fieldFactory)
{ {
Guard.NotNull(fieldFactory, nameof(fieldFactory)); Guard.NotNull(fieldFactory, nameof(fieldFactory));

27
src/pinkparrot_infrastructure/PinkParrot.Infrastructure/CQRS/DomainObject.cs

@ -38,27 +38,32 @@ namespace PinkParrot.Infrastructure.CQRS
this.version = version; this.version = version;
} }
protected abstract void ApplyEvent(Envelope<IEvent> @event); protected abstract void DispatchEvent(Envelope<IEvent> @event);
protected void RaiseEvent<TEvent>(Envelope<TEvent> envelope) where TEvent : class, IEvent protected void RaiseEvent(IEvent @event)
{ {
Guard.NotNull(envelope, nameof(envelope)); RaiseEvent(EnvelopeFactory.ForEvent(@event, this));
}
var envelopeToAdd = envelope.To<IEvent>();
uncomittedEvents.Add(envelopeToAdd);
ApplyEvent(envelopeToAdd); private void ApplyEventCore(Envelope<IEvent> @event)
{
DispatchEvent(@event); version++;
} }
protected void RaiseEvent(IEvent @event) protected void RaiseEvent<TEvent>(Envelope<TEvent> @event) where TEvent : class, IEvent
{ {
RaiseEvent(EnvelopeFactory.ForEvent(@event, this)); Guard.NotNull(@event, nameof(@event));
var envelopeToAdd = @event.To<IEvent>();
uncomittedEvents.Add(envelopeToAdd);
ApplyEventCore(envelopeToAdd);
} }
void IAggregate.ApplyEvent(Envelope<IEvent> @event) void IAggregate.ApplyEvent(Envelope<IEvent> @event)
{ {
ApplyEvent(@event); version++; ApplyEventCore(@event);
} }
void IAggregate.ClearUncommittedEvents() void IAggregate.ClearUncommittedEvents()

4
src/pinkparrot_read/PinkParrot.Read/Repositories/Implementations/EntityMapper.cs

@ -36,14 +36,14 @@ namespace PinkParrot.Read.Repositories.Implementations
public static BsonDocument ToJsonBsonDocument<T>(this T value, JsonSerializerSettings settings) public static BsonDocument ToJsonBsonDocument<T>(this T value, JsonSerializerSettings settings)
{ {
var json = JsonConvert.SerializeObject(value, settings); var json = JsonConvert.SerializeObject(value, settings).Replace("$type", "§type");
return BsonDocument.Parse(json); return BsonDocument.Parse(json);
} }
public static T ToJsonObject<T>(this BsonDocument document, JsonSerializerSettings settings) public static T ToJsonObject<T>(this BsonDocument document, JsonSerializerSettings settings)
{ {
var json = document.ToJson(); var json = document.ToJson().Replace("§type", "$type");
return JsonConvert.DeserializeObject<T>(json, settings); return JsonConvert.DeserializeObject<T>(json, settings);
} }

2
src/pinkparrot_write/PinkParrot.Write/Schema/ModelSchemaDomainObject.cs

@ -187,7 +187,7 @@ namespace PinkParrot.Write.Schema
} }
} }
protected override void ApplyEvent(Envelope<IEvent> @event) protected override void DispatchEvent(Envelope<IEvent> @event)
{ {
this.DispatchAction(@event.Payload); this.DispatchAction(@event.Payload);
} }

Loading…
Cancel
Save