From 2346bc204979fdac8dfc6bbe8f7761a3b04d4b49 Mon Sep 17 00:00:00 2001 From: Savorboard Date: Fri, 27 Oct 2017 16:00:32 +0800 Subject: [PATCH] Update README.md --- README.md | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index b10cfd9..c27185a 100644 --- a/README.md +++ b/README.md @@ -97,29 +97,22 @@ Inject `ICapPublisher` in your Controller, then use the `ICapPublisher` to send ```cs public class PublishController : Controller { - private readonly ICapPublisher _publisher; + private readonly AppDbContext _dbContext; - public PublishController(ICapPublisher publisher) + public PublishController(AppDbContext dbContext) { - _publisher = publisher; - } - - - [Route("~/checkAccount")] - public async Task PublishMessage() - { - // Specifies the message header and content to be sent - await _publisher.PublishAsync("xxx.services.account.check", new Person { Name = "Foo", Age = 11 }); - - return Ok(); + _dbContext = dbContext; } [Route("~/checkAccountWithTrans")] - public async Task PublishMessageWithTransaction([FromServices]AppDbContext dbContext) + public async Task PublishMessageWithTransaction([FromServices]ICapPublisher publisher) { using (var trans = dbContext.Database.BeginTransaction()) { - await _publisher.PublishAsync("xxx.services.account.check", new Person { Name = "Foo", Age = 11 }); + // your business code + + //Achieving atomicity between original database operation and the publish event log thanks to a local transaction + await publisher.PublishAsync("xxx.services.account.check", new Person { Name = "Foo", Age = 11 }); trans.Commit(); }