From cedd3b9e20049eea37a02d1c6c3671add33cad25 Mon Sep 17 00:00:00 2001 From: dingsongjie Date: Thu, 20 Feb 2020 18:03:54 +0800 Subject: [PATCH] 添加 发送 event 测试实例 --- samples/apis/Backet.Api/Backet.Api.csproj | 10 +++++++--- samples/apis/Backet.Api/Controllers/BacketController.cs | 2 +- samples/apis/Backet.Api/Domain/Event/BacketCreatedEvent.cs | 13 +++++++++++++ samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs | 17 +++++++++++++++++ samples/apis/Backet.Api/Grains/BacketGrain.cs | 11 +++++++---- src/Pole.Core/Processor/PendingMessageRetryProcessor.cs | 2 +- src/Pole.Core/UnitOfWork/UnitOfWork.cs | 2 +- 7 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 samples/apis/Backet.Api/Domain/Event/BacketCreatedEvent.cs create mode 100644 samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs diff --git a/samples/apis/Backet.Api/Backet.Api.csproj b/samples/apis/Backet.Api/Backet.Api.csproj index 75312f8..7b52d42 100644 --- a/samples/apis/Backet.Api/Backet.Api.csproj +++ b/samples/apis/Backet.Api/Backet.Api.csproj @@ -5,6 +5,13 @@ + + + + + + + all @@ -26,8 +33,5 @@ - - - diff --git a/samples/apis/Backet.Api/Controllers/BacketController.cs b/samples/apis/Backet.Api/Controllers/BacketController.cs index 2b63024..650312c 100644 --- a/samples/apis/Backet.Api/Controllers/BacketController.cs +++ b/samples/apis/Backet.Api/Controllers/BacketController.cs @@ -21,7 +21,7 @@ namespace Backet.Api.Controllers [HttpPost("api/backet/AddBacket")] public Task AddBacket([FromBody]Backet.Api.Grains.Abstraction.BacketDto backet) { - var newId = "da8a489fa7b4409294ee1b358fbbfba5"; + var newId = "da8a489fa7b44092eeeeeee"; backet.Id = newId; var grain = clusterClient.GetGrain(newId); return grain.AddBacket(backet); diff --git a/samples/apis/Backet.Api/Domain/Event/BacketCreatedEvent.cs b/samples/apis/Backet.Api/Domain/Event/BacketCreatedEvent.cs new file mode 100644 index 0000000..6ec6345 --- /dev/null +++ b/samples/apis/Backet.Api/Domain/Event/BacketCreatedEvent.cs @@ -0,0 +1,13 @@ +using Pole.Core.EventBus.Event; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Backet.Api.Domain.Event +{ + public class BacketCreatedEvent:IEvent + { + public string BacketId { get; set; } + } +} diff --git a/samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs b/samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs new file mode 100644 index 0000000..8e20550 --- /dev/null +++ b/samples/apis/Backet.Api/EventHandlers/ToNoticeBacketCreatedEventHandler.cs @@ -0,0 +1,17 @@ +using Backet.Api.Domain.Event; +using Pole.Core.EventBus.EventHandler; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Backet.Api.EventHandlers +{ + public class ToNoticeBacketCreatedEventHandler : PoleEventHandler + { + public Task EventHandle(BacketCreatedEvent @event) + { + return Task.CompletedTask; + } + } +} diff --git a/samples/apis/Backet.Api/Grains/BacketGrain.cs b/samples/apis/Backet.Api/Grains/BacketGrain.cs index 3920385..03bd0c6 100644 --- a/samples/apis/Backet.Api/Grains/BacketGrain.cs +++ b/samples/apis/Backet.Api/Grains/BacketGrain.cs @@ -1,4 +1,5 @@ -using Backet.Api.Grains.Abstraction; +using Backet.Api.Domain.Event; +using Backet.Api.Grains.Abstraction; using Pole.Core.Grains; using System; using System.Collections.Generic; @@ -16,18 +17,20 @@ namespace Backet.Api.Grains Backet.Api.Domain.AggregatesModel.BacketAggregate.Backet backet = new Backet.Api.Domain.AggregatesModel.BacketAggregate.Backet { Id = backetDto.Id, - UserId= backetDto.UserId + UserId = backetDto.UserId }; if (backetDto.BacketItems == null || backetDto.BacketItems.Count == 0) return false; - backetDto.BacketItems.ForEach(item => { + backetDto.BacketItems.ForEach(item => + { backet.AddBacketItem(item.ProductId, item.ProductName, item.Price); }); Add(backet); + backet.AddDomainEvent(new BacketCreatedEvent() { BacketId = backet.Id }); await WriteStateAsync(); return true; } - public async Task AddBacketItem(string productId,string productName,long price) + public async Task AddBacketItem(string productId, string productName, long price) { if (State == null) return false; diff --git a/src/Pole.Core/Processor/PendingMessageRetryProcessor.cs b/src/Pole.Core/Processor/PendingMessageRetryProcessor.cs index 2fefae9..c71c71c 100644 --- a/src/Pole.Core/Processor/PendingMessageRetryProcessor.cs +++ b/src/Pole.Core/Processor/PendingMessageRetryProcessor.cs @@ -63,7 +63,7 @@ namespace Pole.Core.Processor foreach (var pendingMessage in pendingMessages) { var eventType = eventTypeFinder.FindType(pendingMessage.Name); - var eventContentBytes = serializer.SerializeToUtf8Bytes(pendingMessage, eventType); + var eventContentBytes = Encoding.UTF8.GetBytes(pendingMessage.Content); var bytesTransport = new EventBytesTransport(pendingMessage.Name, pendingMessage.Id, eventContentBytes); var bytes = bytesTransport.GetBytes(); if (pendingMessage.Retries > producerOptions.MaxFailedRetryCount) diff --git a/src/Pole.Core/UnitOfWork/UnitOfWork.cs b/src/Pole.Core/UnitOfWork/UnitOfWork.cs index ca19828..07a6db2 100644 --- a/src/Pole.Core/UnitOfWork/UnitOfWork.cs +++ b/src/Pole.Core/UnitOfWork/UnitOfWork.cs @@ -42,7 +42,7 @@ namespace Pole.Core.UnitOfWork bufferedEvents.ForEach(async @event => { var eventType = eventTypeFinder.FindType(@event.Name); - var eventContentBytes = serializer.SerializeToUtf8Bytes(@event, eventType); + var eventContentBytes = Encoding.UTF8.GetBytes(@event.Content); var bytesTransport = new EventBytesTransport(@event.Name, @event.Id, eventContentBytes); var bytes = bytesTransport.GetBytes(); var producer = await producerContainer.GetProducer(eventType); -- libgit2 0.25.0