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);